MetaTypeProvider
Date: 2016-06-25

org.osgi.service.metatype

## Interface MetaTypeProvider

- All Known Subinterfaces:
    MetaTypeInformation

      @ConsumerType
      public interface MetaTypeProvider

  Provides access to metatypes. This interface can be implemented on a Managed Service or Managed Service Factory as well as registered as a service. When registered as a service, it must be registered with a `METATYPE_FACTORY_PID` or `METATYPE_PID` service property (or both). Any PID mentioned in either of these factories must be a valid argument to the `getObjectClassDefinition(String, String)` method.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `METATYPE_FACTORY_PID` Service property to signal that this service has `ObjectClassDefinition` objects for the given factory PIDs.
    `static java.lang.String` | `METATYPE_PID` Service property to signal that this service has `ObjectClassDefinition` objects for the given PIDs.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String[]` | `getLocales()` Return a list of available locales.
    `ObjectClassDefinition` | `getObjectClassDefinition(java.lang.String id, java.lang.String locale)` Returns an object class definition for the specified id localized to the specified locale.

- - ### Field Detail

    - #### METATYPE_PID

          static final java.lang.String METATYPE_PID

      Service property to signal that this service has `ObjectClassDefinition` objects for the given PIDs. The type of this service property is `String+`.
      Since:
        1.2
      See Also:
        Constant Field Values

    - #### METATYPE_FACTORY_PID

          static final java.lang.String METATYPE_FACTORY_PID

      Service property to signal that this service has `ObjectClassDefinition` objects for the given factory PIDs. The type of this service property is `String+`.
      Since:
        1.2
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getObjectClassDefinition

          ObjectClassDefinition getObjectClassDefinition(java.lang.String id,
                                                       java.lang.String locale)

      Returns an object class definition for the specified id localized to the specified locale.

      The locale parameter must be a name that consists of `language`[ "_" `country`[ "_" `variation`] ] as is customary in the `Locale` class. This `Locale` class is not used because certain profiles do not contain it.

      Parameters:
        `id` - The ID of the requested object class. This can be a pid or factory pid returned by getPids or getFactoryPids.
        `locale` - The locale of the definition or `null` for default locale.
      Returns:
        A `ObjectClassDefinition` object.
      Throws:
        `java.lang.IllegalArgumentException` - If the id or locale arguments are not valid

    - #### getLocales

          java.lang.String[] getLocales()

      Return a list of available locales. The results must be names that consists of language [ _ country [ _ variation ]] as is customary in the `Locale` class.
      Returns:
        An array of locale strings or `null` if there is no locale specific localization can be found.