org.glassfish.hk2.api
Annotation Type Metadata


@Documented
@Retention(value=RUNTIME)
@Target(value=METHOD)
public @interface Metadata

This annotation marks a method of an annotation as providing a value that should be placed into the metadata of the descriptor.

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 Scope or 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)

Author:
jwells

Required Element Summary
 String value
          This is the key that will be used in the metadata field of the descriptor.
 

Element Detail

value

public abstract String value
This is the key that will be used in the metadata field of the descriptor. Values returned from the methods annotated with this annotation will have their toString called and the result will be added to the metadata key with this value (unless the return type is Class, in which case the name of the class will be used)

Returns:
The key of the metadata field that will be added to


Copyright © 2013 Oracle Corporation. All Rights Reserved.