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

Package com.sas.services.publish

# Interface TransportInterface

All Known Subinterfaces:
  `ArchiveTransportInterface`, `ChannelTransportInterface`, `DAVTransportInterface`, `RequesterTransportInterface`

@SASScope("ALL") @BinaryCompatibilityOnly public interface TransportInterface
The TransportInterface interface provides common behavior for delivery transports when retrieving and publishing result packages. A delivery transport is a method of delivering a result set package to the consumer. Each delivery transport provides a mechanism for publishing the result package and retrieving a result package. How the result package is delivered is transport-specific. Supported delivery transports include:

- `Archive`
- `Channel`
- `WebDAV`
- `Requester`

Since:
  1.0
See Also:
  - `TransportFactory`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `org.apache.logging.log4j.Logger`
  `getLogger()`
  Deprecated.
  The Logging Service has been deprecated.
  `ResultPackageInterface`
  `getResultPackage()`
  Retrieves an existing result package for browsing.
  `SessionContextInterface`
  `getSessionContext()`
  Returns the session context.
  `EventDataInterface`
  `publishResultPackage(ResultPackageInterface rpkg, boolean buildEvent)`
  Publish the result package.
  `void`
  `setLogger(org.apache.logging.log4j.Logger logger)`
  Deprecated.
  The Logging Service has been deprecated.

- ## Method Details

  - ### getResultPackage

    ResultPackageInterface getResultPackage() throws TransportException
    Retrieves an existing result package for browsing. Retrieved result packages and their entries are read only.
    Returns:
      `ResultPackageInterface` The existing result package to browse.
    Throws:
      `TransportException` - If the transport encounters an error retrieving the package.

  - ### publishResultPackage

    EventDataInterface publishResultPackage(ResultPackageInterface rpkg, boolean buildEvent) throws TransportException
    Publish the result package. If the buildEvent parameter is set to `true`, the SASPackage XML event is created and returned in the event data. The SASPackage event body describes the published result package. See SASPackage Event Usage for more details.
    Parameters:
      `rpkg` - The result package to publish.
      `buildEvent` - `true` if the SASPackage event should be created and returned after the result package is published. If set to `false`, the event body will not be created and `null` will be returned.
    Returns:
      `EventDataInterface` The event data is returned if buildEvent is set to `true`. If buildEvent is set to `false`, this will be `null`. The event data includes the event body, as well as the event persistence information.
    Throws:
      `TransportException` - If the transport encounters an error publishing the package.

  - ### getSessionContext

    SessionContextInterface getSessionContext()
    Returns the session context. A session context can be provided when the delivery transport is created. The delivery transports use the logger bound to the session context to log publish activities.

    The session context will also be used by the transports to track any retrieved result packages. If the tracked result package is not closed prior to session context destruction, it will be closed when the session context is destroyed.

    Returns:
      `SessionContextInterface` The session context; may be `null` if not previously set.

  - ### setLogger

    void setLogger(org.apache.logging.log4j.Logger logger)
    Deprecated.
    The Logging Service has been deprecated. Use Log4J directly instead of calling this method to set the Logging Service logger.
    Set the logger to be used by the Publish Services when logging publish activities. For applications that do not require a session context, a logger can be provided when the delivery transport is created or it can be specified using this method.

    The logger provided on this method will override the current logger being utilized by the publish services.

    Parameters:
      `logger` - The logger.

  - ### getLogger

    org.apache.logging.log4j.Logger getLogger()
    Deprecated.
    The Logging Service has been deprecated. Use Log4J directly instead of calling this method to get the Logging Service logger.
    Returns the logger that is being used by the Publish Services to log publish activities.
    Returns:
      `LoggerInterface` The logger that is being used by the publish services for logging purposes.