@Retention(value=CLASS) @Target(value=TYPE) @Requirement(namespace="osgi.extender", name="osgi.metatype", version="1.4.0", resolution=OPTIONAL) public @interface ObjectClassDefinition
This annotation can be used without defining any element values since
defaults can be generated from the annotated type. Each method of the
annotated type has an implied AttributeDefinition
annotation if not
explicitly annotated.
This annotation may only be used on annotation types and interface types. Use on concrete or abstract class types is unsupported. If applied to an interface then all methods inherited from super types are included as attributes.
This annotation is not processed at runtime. It must be processed by tools and used to generate a Meta Type Resource document for the bundle.
Modifier and Type | Optional Element and Description |
---|---|
java.lang.String |
description
The human readable description of this ObjectClassDefinition.
|
java.lang.String[] |
factoryPid
The factory PIDs associated with this ObjectClassDefinition.
|
Icon[] |
icon
The icon resources associated with this ObjectClassDefinition.
|
java.lang.String |
id
The id of this ObjectClassDefinition.
|
java.lang.String |
localization
The localization resource of this ObjectClassDefinition.
|
java.lang.String |
name
The human readable name of this ObjectClassDefinition.
|
java.lang.String[] |
pid
The PIDs associated with this ObjectClassDefinition.
|
public abstract java.lang.String id
If not specified, the id of this ObjectClassDefinition is the fully
qualified name of the annotated type using the dollar sign ('$'
\u0024) to separate nested class names from the name of their
enclosing class. The id is not to be confused with a PID which can be
specified by the pid()
or factoryPid()
element.
public abstract java.lang.String name
If not specified, the name of this ObjectClassDefinition is derived from
the id()
. For example, low line ('_'
\u005F) and
dollar sign ('$'
\u0024) are replaced with space (' '
\u0020) and space is inserted between camel case words.
If the name begins with the percent sign ('%'
\u0025), the
name can be localized
.
public abstract java.lang.String description
If not specified, the description of this ObjectClassDefinition is the empty string.
If the description begins with the percent sign ('%'
\u0025),
the description can be localized
.
public abstract java.lang.String localization
This refers to a resource property entry in the bundle that can be
augmented with locale information. If not specified, the localization
resource for this ObjectClassDefinition is the string
"OSGI-INF/l10n/" followed by the id()
.
public abstract java.lang.String[] pid
For each specified PID, a Designate
element with a pid attribute
is generated that references
this ObjectClassDefinition.
The Designate
annotation can also be used to associate a
Declarative Services component with an ObjectClassDefinition and generate
a Designate
element.
A special string ("$"
) can be used to specify the fully qualified
name of the annotated type as a PID. For example:
@ObjectClassDefinition(pid="$")Tools creating a Meta Type Resource from this annotation must replace the special string with the fully qualified name of the annotated type.
Designate
public abstract java.lang.String[] factoryPid
For each specified factory PID, a Designate
element with a
factoryPid attribute is generated that references
this
ObjectClassDefinition.
The Designate
annotation can also be used to associate a
Declarative Services component with an ObjectClassDefinition and generate
a Designate
element.
A special string ("$"
) can be used to specify the fully qualified
name of the annotated type as a factory PID. For example:
@ObjectClassDefinition(factoryPid="$")Tools creating a Meta Type Resource from this annotation must replace the special string with the fully qualified name of the annotated type.
Designate
public abstract Icon[] icon
For each specified Icon
, an Icon
element is generated for
this ObjectClassDefinition. If not specified, no Icon
elements
will be generated.
Copyright © OSGi Alliance (2000, 2018). All Rights Reserved. Licensed under the OSGi Specification License, Version 2.0