Annotation Interface Directive


@Documented @Retention(CLASS) @Target(METHOD) public @interface Directive
Mark an annotation element as a directive.

This is used when applying Capability or Requirement as a meta annotation to an annotation declaration. The value of the annotation element annotated with Directive is used as the value of a directive in the generated capability or requirement clause. For example:

 @Capability(namespace = "my.namespace")
 public @interface MyCapability {
   @Directive("resource")
   String value() default "";
 }
 
 @MyCapability("foo")
 public MyClass {}
 
The use of the MyCapability annotation, which is meta annotated with the Capability and Directive annotations, will result in a capability in the namespace my.namespace with the directive resource:=foo.

If the element annotated with Directive is unspecified when applied, then the directive must not be generated in the generated capability or requirement clause. For example:

 @MyCapability
 public MyClass {}
 
will not have the resource directive in the generated capability.

This annotation is not retained at runtime. It is for use by tools to generate bundle manifests.

  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    The name of the directive.
  • Element Details

    • value

      String value
      The name of the directive.

      If not specified, the name of the annotated element is used as the name of the directive.

      Default:
      ""