@Documented @Retention(value=CLASS) @Target(value=METHOD) public @interface 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.
public abstract String value
If not specified, the name of the annotated element is used as the name of the directive.
Copyright © Contributors to the Eclipse Foundation Licensed under the Eclipse Foundation Specification License – v1.0