### *** This class provides Binary Compatibility only, not Source Compatibility ***

Package com.sas.services.discovery

# Class DiscoveryServiceFactory

java.lang.Object
com.sas.services.AbstractServiceFactory
com.sas.services.discovery.DiscoveryServiceFactory

All Implemented Interfaces:
  `ServiceFactoryInterface`

@SASScope("ALL") @BinaryCompatibilityOnly public class DiscoveryServiceFactory extends AbstractServiceFactory
Factory used to manufacture a remotely accessible discovery service.

The manufactured service will implement the following interfaces:

- `RemoteServiceInterface`
- `DiscoveryServiceInterface`

The service created by this factory does not depend upon any other foundation services.

Since:
  1.0
See Also:
  - `ServiceFactoryInterface`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DiscoveryServiceFactory()`
  Constructs a default instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static final DiscoveryServiceInterface`
  `createService(ServiceConfigurationInterface serviceConfiguration, DiscoveryServiceInterface discoveryService)`
  Gets a discovery service that has been initialized with the specified service configuration.
  `final RemoteServiceInterface`
  `getService(ServiceConfigurationInterface serviceConfiguration, DiscoveryServiceInterface discoveryService)`
  Gets a service that has been initialized with the specified service configuration.

  ### Methods inherited from class com.sas.services.AbstractServiceFactory

  `getService, getServiceProfile, isSingletonFactory`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### DiscoveryServiceFactory

    public DiscoveryServiceFactory()
    Constructs a default instance.

- ## Method Details

  - ### getService

    public final RemoteServiceInterface getService(ServiceConfigurationInterface serviceConfiguration, DiscoveryServiceInterface discoveryService) throws ServiceException
    Gets a service that has been initialized with the specified service configuration. `RemoteServiceInterface` is the base interface implemented by all services.

    Gets a discovery service that has been initialized with the specified service configuration. Note that the implementation of this method calls getDiscoveryService(ServiceConfigurationInterface) which provides a type safe return value. This method is intended for use by the platform service deployment mechanism which requires a return type of `RemoteServiceInterface`.

    Specified by:
      `getService` in interface `ServiceFactoryInterface`
    Specified by:
      `getService` in class `AbstractServiceFactory`
    Parameters:
      `serviceConfiguration` - Service configuration.
      `discoveryService` - A discovery service which may be used to locate other services and to which a service must bind in order to be discoverable by other services.
    Returns:
      Remoteable discovery service
    Throws:
      `ServiceException` - if unable to obtain a service based upon the specified configuration.
    See Also:
      - `AbstractServiceFactory.getService(ServiceConfigurationInterface)`

  - ### createService

    public static final DiscoveryServiceInterface createService(ServiceConfigurationInterface serviceConfiguration, DiscoveryServiceInterface discoveryService) throws ServiceException
    Gets a discovery service that has been initialized with the specified service configuration.

    This method returns a discovery service that's capable of servicing remote clients. This method provides a type safe return value and is intended for general purpose use.

    Parameters:
      `serviceConfiguration` - Service configuration.
      `discoveryService` - A discovery service which may be used to locate other services and to which a service must bind in order to be discoverable by other services.
    Returns:
      Remotely accessible discovery service
    Throws:
      `ServiceException` - if unable to obtain a service based upon the specified configuration.