Top Description Methods
org.osgi.annotation.bundle

public @Interface Directive

extends Annotation
Annotations
@Documented
@Retention:CLASS
@Target:METHOD
Imports
java.lang.annotation.Documented, .ElementType, .Retention, .RetentionPolicy, .Target

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.

Author
$Id: 3cb5691a604299a07e1f80e708f2201311d03f6c $

Method Summary

Modifier and TypeMethod and Description
public String
value()

The name of the directive.

Inherited from java.lang.annotation.Annotation:
annotationTypeequalshashCodetoString

Method Detail

valueback to summary
public String value()

The name of the directive.

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