Interface ComponentServiceObjects<S>

Type Parameters:
S - Type of Service

@ProviderType public interface ComponentServiceObjects<S>
Allows multiple service objects for a service to be obtained.

A component instance can receive a ComponentServiceObjects object via a reference that is typed ComponentServiceObjects.

For services with prototype scope, multiple service objects for the service can be obtained. For services with singleton or bundle scope, only one, use-counted service object is available.

Any unreleased service objects obtained from this ComponentServiceObjects object are automatically released by Service Component Runtime when the service becomes unbound.

Since:
1.3
See Also:
"ThreadSafe"
  • Method Details

    • getService

      S getService()
      Returns a service object for the associated service.

      This method will always return null when the associated service has been become unbound.

      Returns:
      A service object for the associated service or null if the service is unbound, the customized service object returned by a ServiceFactory does not implement the classes under which it was registered or the ServiceFactory threw an exception.
      Throws:
      IllegalStateException - If the component instance that received this ComponentServiceObjects object has been deactivated.
      See Also:
    • ungetService

      void ungetService(S service)
      Releases a service object for the associated service.

      The specified service object must no longer be used and all references to it should be destroyed after calling this method.

      Parameters:
      service - A service object previously provided by this ComponentServiceObjects object.
      Throws:
      IllegalStateException - If the component instance that received this ComponentServiceObjects object has been deactivated.
      IllegalArgumentException - If the specified service object was not provided by this ComponentServiceObjects object.
      See Also:
    • getServiceReference

      ServiceReference<S> getServiceReference()
      Returns the ServiceReference for the service associated with this ComponentServiceObjects object.
      Returns:
      The ServiceReference for the service associated with this ComponentServiceObjects object.