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

Package com.sas.services.information.metadata

# Interface SubscriberInterface

All Superinterfaces:
  `MetadataInterface`, `PublicObjectInterface`, `Remote`

All Known Subinterfaces:
  `ContentSubscriberInterface`, `EventSubscriberInterface`

@SASScope("ALL") @BinaryCompatibilityOnly public interface SubscriberInterface extends MetadataInterface
Subscriber interface.

Since:
  1.1

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `SUBSCRIBER_CONTENT`
  Type: Content subscriber.
  `static final int`
  `SUBSCRIBER_EVENT`
  Type: Event subscriber.

  ### Fields inherited from interface com.sas.services.information.metadata.MetadataInterface

  `METADATA_STATE_DELETED, METADATA_STATE_DESTROYED, METADATA_STATE_NEW, METADATA_STATE_NORMAL, PERMISSION_READMETADATA, PERMISSION_WRITEMETADATA`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ContentDestination`
  `getContentDestination()`
  Get the content destination for this subscriber
  `String`
  `getDeliveryTransport()`
  Gets the preferred delivery transport for this subscriber.
  `MessageQueueInterface`
  `getMessageQueue()`
  Gets the queue to deliver to for this subscriber.
  `MessageQueueInterface`
  `getMessageQueue(boolean goToServer)`
  Gets the queue to deliver to for this subscriber.
  `PersonInterface`
  `getPerson()`
  Returns the user this subscriber identity belongs to.
  `String`
  `getQueueName()`
  Gets the queue name to deliver to for this subscriber.
  `List`
  `getSubscribedChannels()`
  Get a list of the channels subscribed to by this Subscriber identity.
  `void`
  `setContentDestination(DirectoryInterface basePathDirectory, String relativePath)`
  Set the content destination for this subscriber.
  `void`
  `setDeliveryTransport(String deliveryTransport)`
  Sets the delivery transport for this subscriber.
  `void`
  `setMessageQueue(MessageQueueInterface messageQueue)`
  Adds the queue to deliver to for this subscriber.
  `void`
  `setPerson(PersonInterface person)`
  Sets the user this subscriber identity belongs to.
  `void`
  `setQueueName(String queueName)`
  Sets the queue name this subscriber receives data on.
  `ServiceException`
  `validate(FolderInterface folder)`
  Validate a publishing framework subscriber.

  ### Methods inherited from interface com.sas.services.information.metadata.MetadataInterface

  `add, addAccessControl, addAttribute, addAttributes, addDocument, addExtension, addGroup, addImplementor, addKeyword, addNoteTextStore, addNoteTextStore, addObjectProperty, addObjectProperty, addPermissions, addPrompt, addPropertySet, addRemark, addResponsibleParty, addTransactionListener, addUsedByPrototype, checkin, checkout, commit, copyTo, countAssociatedObjects, delete, deleteAttribute, deleteAttributes, destroy, getAccessControls, getAttribute, getAttributes, getAuthorizationUtil, getCreateDate, getCreatedBy, getDescription, getDocuments, getEntityKey, getEntityURL, getExtensions, getGroups, getGUID, getIdentities, getImplementors, getKeywords, getLockedBy, getModifiedBy, getModifyDate, getNoteTextStore, getNoteTextStores, getNoteTextStoresByRole, getObjectProperties, getParent, getParentPath, getParents, getPath, getPaths, getPermission, getPermissions, getPermissions, getPreviousVersionNames, getPrimaryPropertyGroup, getPrompt, getPrompts, getPropertyBag, getPropertySets, getRemarksList, getReposId, getRepository, getRepositoryEntity, getRepositoryName, getReposKey, getResponsibleParties, getState, getTrackingId, getType, getUsageVersion, getUsedByPrototypes, getUsingPrototype, getVersion, isAuthorized, isCompatible, isDeleted, isDestroyed, isObjectAlive, isReadCompatible, mapNameToFilesystem, mapUrlToFilesystem, moveTo, newServiceObject, refresh, removeAccessControl, removeDocument, removeExtension, removeGroup, removeImplementor, removeKeyword, removeNoteTextStore, removeObjectProperty, removePermissions, removePrompt, removePropertySet, removeResponsibleParty, removeResponsiblePartyByIdentity, removeUsedByPrototype, rollback, setAttribute, setAttributes, setDeleted, setDescription, setDocuments, setExtensions, setGroups, setGUID, setKeywords, setName, setNoteTextStores, setObjectProperties, setPermission, setPrimaryPropertyGroup, setPrompt, setPrompts, setRemarksList, setRepository, setUsingPrototype, startTransaction, toByteArray, transactionEvent, uncheckout, update, updateFromBag, version`

  ### Methods inherited from interface com.sas.services.information.publicobject.PublicObjectInterface

  `addProcessorInterface, getContainer, getIdentifier, getName, getObjectURI, getPathUrl, getProcessorInterface, getTypeDescriptor`

- ## Field Details

  - ### SUBSCRIBER_CONTENT

    static final int SUBSCRIBER_CONTENT
    Type: Content subscriber.
    See Also:
      - Constant Field Values

  - ### SUBSCRIBER_EVENT

    static final int SUBSCRIBER_EVENT
    Type: Event subscriber.
    See Also:
      - Constant Field Values

- ## Method Details

  - ### getPerson

    PersonInterface getPerson() throws ServiceException, RemoteException
    Returns the user this subscriber identity belongs to.

    Returns:
      The context of the user's entry
    Throws:
      `ServiceException` - If a serice level error occurs.
      `RemoteException` - if a network anomaly is encountered.

  - ### setPerson

    void setPerson(PersonInterface person) throws ServiceException, RemoteException
    Sets the user this subscriber identity belongs to.

    Parameters:
      `person` - The person
    Throws:
      `ServiceException` - If a serice level error occurs.
      `RemoteException` - if a network anomaly is encountered.

  - ### getDeliveryTransport

    String getDeliveryTransport() throws ServiceException, RemoteException
    Gets the preferred delivery transport for this subscriber.

    Returns:
      The delivery transport.
    Throws:
      `ServiceException` - If a serice level error occurs.
      `RemoteException` - if a network anomaly is encountered.

  - ### setDeliveryTransport

    void setDeliveryTransport(String deliveryTransport) throws ServiceException, RemoteException
    Sets the delivery transport for this subscriber.

    Parameters:
      `deliveryTransport` - The new transport.
    Throws:
      `ServiceException` - If a serice level error occurs.
      `RemoteException` - if a network anomaly is encountered.

  - ### getMessageQueue

    MessageQueueInterface getMessageQueue() throws ServiceException, RemoteException
    Gets the queue to deliver to for this subscriber.
    Returns:
      The message queue this subscriber recieves published information on or `null` if there is no assigned queue.

      If the queue is `null`, use `getQueueName()` to determine if a queue was assigned using the 9.1.3 model.

    Throws:
      `ServiceException` - if unable to read the assigned queue.
      `RemoteException` - if a network anomaly is encountered.
    Since:
      9.2
    See Also:
      - `getQueueName()`

  - ### getMessageQueue

    MessageQueueInterface getMessageQueue(boolean goToServer) throws ServiceException, RemoteException
    Gets the queue to deliver to for this subscriber.
    Parameters:
      `goToServer` - Force a trip to the server for the most recent data.
      `gotoServer` - if true, force a trip to the server for the data. If false, take the default behavior (go to the server if the data has not been retrieved, but don't go to the server if the data is already in the cache).
    Returns:
      The message queue this subscriber recieves published information on or `null` if there is no assigned queue.

      If the queue is `null`, use `getQueueName()` to determine if a queue was assigned using the 9.1.3 model.

    Throws:
      `ServiceException` - If a repository error occurs.
      `RemoteException` - In the event of remote object failure
      `ServiceException` - if unable to read the assigned queue.
      `RemoteException` - if a network anomaly is encountered.
    Since:
      9.2
    See Also:
      - `getQueueName()`

  - ### setMessageQueue

    void setMessageQueue(MessageQueueInterface messageQueue) throws ServiceException, RemoteException
    Adds the queue to deliver to for this subscriber.
    Parameters:
      `messageQueue` - The message queue this subscriber recieves published information on or `null` if there is no assigned queue.

      If the queue is `null`, use `getQueueName()` to determine if a queue was assigned using the 9.1.3 model.

    Throws:
      `ServiceException` - if unable to read the assigned queue.
      `RemoteException` - if a network anomaly is encountered.
    Since:
      9.2
    See Also:
      - `getMessageQueue()`

  - ### getQueueName

    String getQueueName() throws ServiceException, RemoteException
    Gets the queue name to deliver to for this subscriber.

    Returns:
      The message queue this subscriber recieves published information on
    Throws:
      `ServiceException` - If a serice level error occurs.
      `RemoteException` - if a network anomaly is encountered.

  - ### setQueueName

    void setQueueName(String queueName) throws ServiceException, RemoteException
    Sets the queue name this subscriber receives data on.

    Parameters:
      `queueName` - The new queue name to deliver to for this subscriber.
    Throws:
      `ServiceException` - If a serice level error occurs.
      `RemoteException` - if a network anomaly is encountered.

  - ### getContentDestination

    ContentDestination getContentDestination() throws ServiceException, RemoteException
    Get the content destination for this subscriber
    Returns:
      a Directory representing the preferred content destination for this subscriber.
    Throws:
      `ServiceException` - If a serice level error occurs.
      `RemoteException` - in the event of remote object failure.

  - ### setContentDestination

    void setContentDestination(DirectoryInterface basePathDirectory, String relativePath) throws ServiceException, RemoteException
    Set the content destination for this subscriber.
    Parameters:
      `basePathDirectory` - A Directory representing the content destination's base path.
      `relativePath` - Relative path.
    Throws:
      `ServiceException` - If a serice level error occurs.
      `RemoteException` - in the event of remote object failure.

  - ### getSubscribedChannels

    List getSubscribedChannels() throws ServiceException, RemoteException
    Get a list of the channels subscribed to by this Subscriber identity.
    Returns:
      a List of ChannelInterface objects.
    Throws:
      `ServiceException` - if a repository error occurs.
      `RemoteException` - in the event of remote object failure.

  - ### validate

    ServiceException validate(FolderInterface folder) throws RemoteException
    Validate a publishing framework subscriber. For a subscriber defined in a SAS Metadata Repository, a valid subscriber must satisfy the following constraint:
    - Name must be unique within the repository's folder hierarchy
    Parameters:
      `folder` - Folder containing subscribers.
    Returns:
      ServiceException if the subscriber is invalid.
    Throws:
      `RemoteException` - in the event of remote object failure.