Package org.eclipse.ecf.osgi.services.remoteserviceadmin

## Interface IServiceInfoFactory

All Known Implementing Classes:
  `ServiceInfoFactory`

    public interface IServiceInfoFactory

Service info factory service contract. A service info factory is used to convert `EndpointDescription`s to `IServiceInfo` instances (via createServiceInfo. The resulting IServiceInfo instances are then used to publish the EndpointDescription metadata to a `IDiscoveryAdvertiser`.

If no other instances of this service have been registered, a default instance of `ServiceInfoFactory` will be used. Note that this default instance is registered with the lowest possible priority, so that if other `IServiceInfoFactory` instances are registered, they will be preferred/used over the default. This means that Those wishing to customize/control this process of converting `EndpointDescription`s to `IServiceInfo` must

- create their own implementation of `IServiceInfoFactory`
- register it with the OSGi service registry with a priority ({org.osgi.framework.Constants#SERVICE_RANKING}) higher than `Integer.MIN_VALUE`

Then at runtime, when needed by the EndpointDescriptionAdvertiser, the new service info factory will be used.

See Also:
  `IDiscoveredEndpointDescriptionFactory`

### Method Summary

All Methods Instance Methods Abstract Methods
`IServiceInfo` `createServiceInfo​(IDiscoveryAdvertiser advertiser, EndpointDescription endpointDescription)` Create an service info instance to represent the given endpointDescription for discovery using the given discovery advertiser.

### Method Detail

#### createServiceInfo

    IServiceInfo createServiceInfo​(IDiscoveryAdvertiser advertiser,
                                   EndpointDescription endpointDescription)

Create an service info instance to represent the given endpointDescription for discovery using the given discovery advertiser.

Parameters:
  `advertiser` - the advertiser to use for creating the service info result. Must not be `null`.
  `endpointDescription` - the endpoint description that the service info is to represent. Must not be `null`.
Returns:
  IServiceInfo to use to publish the endpointDescription for discovery (via `IDiscoveryAdvertiser.registerService(IServiceInfo)`. If a service info instance has previously been created for the given endpointDescription by this service info factory, then that serviceInfo will be returned in favor of creating a new one. Otherwise, a new service info will be created and returned. If some error occurs in the creation of the serviceInfo, `null` will be returned.
Since:
  3.0