@Documented @Retention(value=RUNTIME) @Target(value=METHOD) public @interface Metadata
One downside of using Qualifiers (or values in the Scope annotation) is that in order to get these values the underlying classes must be reified. In order to relieve the system from having to reify classes to get the data in the scope and qualifier annotations this annotation can be placed on the methods of an annotation to indicate that the values found in the annotation should be placed into the metadata of the descriptor. Since the metadata of a descriptor can be accessed without classloading the underlying class the descriptor is describing this data can then be accessed without needing to reify the class.
This qualifier will be honored whenever the system does automatic analysis of a class (for example, when analyzing a pre-reified class file or object). It will also be used by the automatic inhabitant generator when analyzing class files marked @Service. However, if the programmatic API is being used to build up a descriptor file this annotation is not taken into account, and it is hence the responsibility of the user of the programmatic API to fill in the metadata values itself.
This annotation can be placed on any method of an annotation marked with
Qualifier. The "toString" of the object returned
from that method will be placed in the metadata of the descriptor that is
created (unless the object returned is a Class, in which case the name of
the Class is used)
public abstract String value
Copyright © 2009-2017, Oracle and/or its affiliates. All Rights Reserved.