Annotation Interface ObjectClassDefinition


@Retention(CLASS) @Target(TYPE) @Requirement(namespace="osgi.extender", name="osgi.metatype", version="1.4", resolution="OPTIONAL") public @interface ObjectClassDefinition
Generate a Meta Type Resource using the annotated type.

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.

See Also:
  • "The OCD element of a Meta Type Resource."
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    The human readable description of this ObjectClassDefinition.
    The factory PIDs associated with this ObjectClassDefinition.
    The icon resources associated with this ObjectClassDefinition.
    The id of this ObjectClassDefinition.
    The localization resource of this ObjectClassDefinition.
    The human readable name of this ObjectClassDefinition.
    The PIDs associated with this ObjectClassDefinition.
  • Element Details

    • id

      String id
      The id of this ObjectClassDefinition.

      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.

      See Also:
      • "The id attribute of the OCD element of a Meta Type Resource."
      Default:
      ""
    • name

      String name
      The human readable name of this ObjectClassDefinition.

      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.

      See Also:
      • "The name attribute of the OCD element of a Meta Type Resource."
      Default:
      ""
    • description

      String description
      The human readable description of this ObjectClassDefinition.

      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.

      See Also:
      • "The description attribute of the OCD element of a Meta Type Resource."
      Default:
      ""
    • localization

      String localization
      The localization resource of this ObjectClassDefinition.

      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().

      See Also:
      • "The localization attribute of the MetaData element of a Meta Type Resource."
      Default:
      ""
    • pid

      String[] pid
      The PIDs associated with this ObjectClassDefinition.

      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.
      See Also:
      • "The pid attribute of the Designate element of a Meta Type Resource."
      • Designate
      Default:
      {}
    • factoryPid

      String[] factoryPid
      The factory PIDs associated with this ObjectClassDefinition.

      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.
      See Also:
      • "The factoryPid attribute of the Designate element of a Meta Type Resource."
      • Designate
      Default:
      {}
    • icon

      Icon[] icon
      The icon resources associated with this ObjectClassDefinition.

      For each specified Icon, an Icon element is generated for this ObjectClassDefinition. If not specified, no Icon elements will be generated.

      See Also:
      • "The Icon element of a Meta Type Resource."
      Default:
      {}