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

Package com.sas.services.deployment

# Class AbstractServiceDeployment

java.lang.Object
com.sas.services.deployment.AbstractServiceDeployment

Direct Known Subclasses:
  `ServiceDeployment`

@SASScope("ALL") @BinaryCompatibilityOnly public abstract class AbstractServiceDeployment extends Object
Utilities to manipulate a foundation services deployment.

- Application configurations for a service
  - install
  - determining if a configuration is installed
- Services deployment inspection
  - getting the deployment's service components
  - determining if a service implementing a specified interface is defined

Since:
  9.2

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AbstractServiceDeployment(String softwareComponentName)`
  Constructs a representation of a foundation services deployment.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected String`
  `getSearchOptions(String softwareComponentID)`
  Gets a search filter which will locate all ServiceComponents defined under a particular SoftwareComponent.
  `static final ServiceFactoryInterface`
  `getServiceFactory(String serviceFactoryClassName)`
  `final String`
  `getSoftwareComponentName()`
  Gets the name of the service deployment.
  `protected final String`
  `getXMLSelectProperty(String serviceComponentFQID, String configName)`
  Gets an XMLSelect which can be used to query a configuration property for a particular service component.
  `abstract boolean`
  `installServiceConfiguration(String configName, String configDesc, File configFile, String serviceInterfaceClassName)`
  Adds an application configuration to the foundation service that implements the specified interface.

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

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

- ## Constructor Details

  - ### AbstractServiceDeployment

    public AbstractServiceDeployment(String softwareComponentName) throws ServiceException
    Constructs a representation of a foundation services deployment.
    Parameters:
      `softwareComponentName` - Name of the `SoftwareComponent` which represents a foundation services deployment.
    Throws:
      `ServiceException` - if unable to query the service deployment metadata.

- ## Method Details

  - ### getSoftwareComponentName

    public final String getSoftwareComponentName()
    Gets the name of the service deployment.
    Returns:
      Service deployment's name.

  - ### installServiceConfiguration

    public abstract boolean installServiceConfiguration(String configName, String configDesc, File configFile, String serviceInterfaceClassName) throws ServiceException
    Adds an application configuration to the foundation service that implements the specified interface.
    Parameters:
      `configName` - The unique name for the application configuration (e.g. "Information Delivery Portal").
      `configDesc` - An optional description for the application configuration.
      `configFile` - The file that contains a foundation services configuration which is to be added to the service definition.
      `serviceInterfaceClassName` - The fully-qualified Java class name for the primary interface implemented by the service whose configuration is to be updated (e.g. "com.sas.services.user.UserServiceInterface").
    Returns:
      `true` if the service configuration was successfully installed.
    Throws:
      `ServiceException` - if unable to install the specified service configuration.

  - ### getXMLSelectProperty

    protected final String getXMLSelectProperty(String serviceComponentFQID, String configName)
    Gets an XMLSelect which can be used to query a configuration property for a particular service component.
    Parameters:
      `serviceComponentFQID` - The metadata ID of the service component.
      `configName` - The name of the service configuration property. This corresponds to the Property.Name attribute.
    Returns:
      XMLSelect used to query a named configuration property for a particular service component.

  - ### getSearchOptions

    protected String getSearchOptions(String softwareComponentID)
    Gets a search filter which will locate all ServiceComponents defined under a particular SoftwareComponent.
    Parameters:
      `softwareComponentID` - FQID of the SoftwareComponent.
    Returns:
      XMLSelect search filter.

  - ### getServiceFactory

    public static final ServiceFactoryInterface getServiceFactory(String serviceFactoryClassName) throws ServiceException
    Throws:
      `ServiceException`