@Documented
@Retention(value=CLASS)
@Target(value=METHOD)
public @interface Attribute
This is used when applying Capability
or Requirement
as a
meta annotation to an annotation declaration. The value of the annotation
element annotated with Attribute
is used as the value of an attribute
in the generated capability or requirement clause. For example:
@Capability(namespace = "my.namespace") public @interface MyCapability { @Attribute("attr") String value() default ""; } @MyCapability("foo") public MyClass {}The use of the
MyCapability
annotation, which is meta annotated with
the Capability
and Attribute
annotations, will result in a
capability in the namespace my.namespace
with the attribute
attr=foo
.
If the element annotated with Attribute
is unspecified when applied,
then the attribute must not be generated in the generated capability or
requirement clause. For example:
@MyCapability public MyClass {}will not have the
attr
attribute in the generated capability.
This annotation is not retained at runtime. It is for use by tools to generate bundle manifests.
Modifier and Type | Optional Element and Description |
---|---|
java.lang.String |
value
The name of the attribute.
|
Copyright © OSGi Alliance (2000, 2018). All Rights Reserved. Licensed under the OSGi Specification License, Version 2.0