Annotation Type 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
      java.lang.String value
      The name of the directive.
    • Element Detail

      • value

        java.lang.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:
        ""