Designate
Date: 2016-06-25

org.osgi.service.metatype.annotations

## Annotation Type Designate

-     @Retention(value=CLASS)
      @Target(value=TYPE)
      public @interface Designate

  Generate a `Designate` element in the Meta Type Resource for an `ObjectClassDefinition` using the annotated Declarative Services component.

  This annotation must be used on a type that is also annotated with the Declarative Services `Component` annotation. The component must only have a single PID which is used for the generated `Designate` element.

  This annotation is not processed at runtime. It must be processed by tools and used to contribute to a Meta Type Resource document for the bundle.

  See Also:
    "The Designate element of a Meta Type Resource."

- - ### Required Element Summary

    Required Elements
    Modifier and Type | Required Element and Description
    --- | ---
    `java.lang.Class<?>` | `ocd` The type of the `ObjectClassDefinition` for this Designate.

  - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `boolean` | `factory` Specifies whether this Designate is for a factory PID.

- - ### Element Detail

    - #### ocd

          public abstract java.lang.Class<?> ocd

      The type of the `ObjectClassDefinition` for this Designate.

      The specified type must be annotated with `ObjectClassDefinition`.

      See Also:
        "The ocdref attribute of the Designate element of a Meta Type Resource."

    - #### factory

          public abstract boolean factory

      Specifies whether this Designate is for a factory PID.

      If `false`, then the PID value from the annotated component will be used in the `pid` attribute of the generated `Designate` element. If `true`, then the PID value from the annotated component will be used in the `factoryPid` attribute of the generated `Designate` element.

      See Also:
        "The pid and factoryPid attributes of the Designate element of a Meta Type Resource."
      Default:
        false