Annotation Type ObjectClassDefinition


  • @Retention(CLASS)
    @Target(TYPE)
    @Requirement(namespace="osgi.extender",
                 name="osgi.metatype",
                 version="1.4.0",
                 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
      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.
    • Element Detail

      • id

        java.lang.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

        java.lang.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

        java.lang.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

        java.lang.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

        java.lang.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

        java.lang.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:
        {}