ServiceReferenceMetadata
Date: 2016-06-25

org.osgi.service.blueprint.reflect

## Interface ServiceReferenceMetadata

- All Superinterfaces:
    ComponentMetadata, Metadata, NonNullMetadata
  All Known Subinterfaces:
    ReferenceListMetadata, ReferenceMetadata

      @ConsumerType
      public interface ServiceReferenceMetadata
      extends ComponentMetadata

  Metadata for a reference to an OSGi service. This is the base type for `ReferenceListMetadata` and `ReferenceMetadata`.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `AVAILABILITY_MANDATORY` A matching service is required at all times.
    `static int` | `AVAILABILITY_OPTIONAL` A matching service is not required to be present.

    - ### Fields inherited from interface org.osgi.service.blueprint.reflect.ComponentMetadata

      `ACTIVATION_EAGER, ACTIVATION_LAZY`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getAvailability()` Return whether or not a matching service is required at all times.
    `java.lang.String` | `getComponentName()` Return the value of the `component-name` attribute of the service reference.
    `java.lang.String` | `getFilter()` Return the filter expression that a matching service must match.
    `java.lang.String` | `getInterface()` Return the name of the interface type that a matching service must support.
    `java.util.Collection<ReferenceListener>` | `getReferenceListeners()` Return the reference listeners to receive bind and unbind events.

    - ### Methods inherited from interface org.osgi.service.blueprint.reflect.ComponentMetadata

      `getActivation, getDependsOn, getId`

- - ### Field Detail

    - #### AVAILABILITY_MANDATORY

          static final int AVAILABILITY_MANDATORY

      A matching service is required at all times.
      See Also:
        `getAvailability()`, Constant Field Values

    - #### AVAILABILITY_OPTIONAL

          static final int AVAILABILITY_OPTIONAL

      A matching service is not required to be present.
      See Also:
        `getAvailability()`, Constant Field Values

  - ### Method Detail

    - #### getAvailability

          int getAvailability()

      Return whether or not a matching service is required at all times. This is specified in the `availability` attribute of the service reference.
      Returns:
        Whether or not a matching service is required at all times.
      See Also:
        `AVAILABILITY_MANDATORY`, `AVAILABILITY_OPTIONAL`

    - #### getInterface

          java.lang.String getInterface()

      Return the name of the interface type that a matching service must support. This is specified in the `interface` attribute of the service reference.
      Returns:
        The name of the interface type that a matching service must support or `null` when no interface name is specified.

    - #### getComponentName

          java.lang.String getComponentName()

      Return the value of the `component-name` attribute of the service reference. This specifies the id of a component that is registered in the service registry. This will create an automatic filter, appended with the filter if set, to select this component based on its automatic `id` attribute.
      Returns:
        The value of the `component-name` attribute of the service reference or `null` if the attribute is not specified.

    - #### getFilter

          java.lang.String getFilter()

      Return the filter expression that a matching service must match. This is specified by the `filter` attribute of the service reference.
      Returns:
        The filter expression that a matching service must match or `null` if a filter is not specified.

    - #### getReferenceListeners

          java.util.Collection<ReferenceListener> getReferenceListeners()

      Return the reference listeners to receive bind and unbind events. This is specified by the `reference-listener` elements of the service reference.
      Returns:
        An immutable Collection of `ReferenceListener` objects to receive bind and unbind events. The Collection is empty if no reference listeners are specified for the service reference.