Class ExternalReferenceExchangeClient

All Implemented Interfaces:
ExternalReferencesInterface, ExternalIdentifierManagerInterface

public class ExternalReferenceExchangeClient extends ExchangeClientBase implements ExternalReferencesInterface
ExternalReferenceExchangeClient is the client for managing external references.
  • Constructor Details

    • ExternalReferenceExchangeClient

      public ExternalReferenceExchangeClient(String serverName, String serverPlatformURLRoot, AuditLog auditLog, int maxPageSize) throws InvalidParameterException
      Create a new client with no authentication embedded in the HTTP request.
      Parameters:
      serverName - name of the server to connect to
      serverPlatformURLRoot - the network address of the server running the OMAS REST services
      auditLog - logging destination
      maxPageSize - maximum value allowed for page size
      Throws:
      InvalidParameterException - there is a problem creating the client-side components to issue any REST API calls.
    • ExternalReferenceExchangeClient

      public ExternalReferenceExchangeClient(String serverName, String serverPlatformURLRoot, int maxPageSize) throws InvalidParameterException
      Create a new client with no authentication embedded in the HTTP request.
      Parameters:
      serverName - name of the server to connect to
      serverPlatformURLRoot - the network address of the server running the OMAS REST services
      maxPageSize - maximum value allowed for page size
      Throws:
      InvalidParameterException - there is a problem creating the client-side components to issue any REST API calls.
    • ExternalReferenceExchangeClient

      public ExternalReferenceExchangeClient(String serverName, String serverPlatformURLRoot, String userId, String password, AuditLog auditLog, int maxPageSize) throws InvalidParameterException
      Create a new client that passes userId and password in each HTTP request. This is the userId/password of the calling server. The end user's userId is sent on each request.
      Parameters:
      serverName - name of the server to connect to
      serverPlatformURLRoot - the network address of the server running the OMAS REST services
      userId - caller's userId embedded in all HTTP requests
      password - caller's userId embedded in all HTTP requests
      auditLog - logging destination
      maxPageSize - maximum value allowed for page size
      Throws:
      InvalidParameterException - there is a problem creating the client-side components to issue any REST API calls.
    • ExternalReferenceExchangeClient

      public ExternalReferenceExchangeClient(String serverName, String serverPlatformURLRoot, AssetManagerRESTClient restClient, int maxPageSize, AuditLog auditLog) throws InvalidParameterException
      Create a new client that is going to be used in an OMAG Server.
      Parameters:
      serverName - name of the server to connect to
      serverPlatformURLRoot - the network address of the server running the OMAS REST services
      restClient - client that issues the REST API calls
      maxPageSize - maximum number of results supported by this server
      auditLog - logging destination
      Throws:
      InvalidParameterException - there is a problem creating the client-side components to issue any REST API calls.
    • ExternalReferenceExchangeClient

      public ExternalReferenceExchangeClient(String serverName, String serverPlatformURLRoot, String userId, String password, int maxPageSize) throws InvalidParameterException
      Create a new client that passes userId and password in each HTTP request. This is the userId/password of the calling server. The end user's userId is sent on each request.
      Parameters:
      serverName - name of the server to connect to
      serverPlatformURLRoot - the network address of the server running the OMAS REST services
      userId - caller's userId embedded in all HTTP requests
      password - caller's userId embedded in all HTTP requests
      maxPageSize - maximum value allowed for page size
      Throws:
      InvalidParameterException - there is a problem creating the client-side components to issue any REST API calls.
  • Method Details

    • createExternalReference

      public String createExternalReference(String userId, String assetManagerGUID, String assetManagerName, boolean assetManagerIsHome, ExternalIdentifierProperties externalIdentifierProperties, String anchorGUID, ExternalReferenceProperties properties) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create a definition of an external reference.
      Specified by:
      createExternalReference in interface ExternalReferencesInterface
      Parameters:
      userId - calling user
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      assetManagerIsHome - ensure that only the asset manager can update this asset
      externalIdentifierProperties - optional properties used to define an external identifier
      anchorGUID - optional element to link the external reference to that will act as an anchor - that is, this external reference will be deleted when the element is deleted (once the external reference is linked to the anchor).
      properties - properties for an external reference
      Returns:
      unique identifier of the external reference
      Throws:
      InvalidParameterException - qualifiedName or userId is null; qualifiedName is not unique
      PropertyServerException - problem accessing property server
      UserNotAuthorizedException - security access problem
    • updateExternalReference

      public void updateExternalReference(String userId, String assetManagerGUID, String assetManagerName, String externalReferenceGUID, String referenceExternalIdentifier, boolean isMergeUpdate, ExternalReferenceProperties properties, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the definition of an external reference.
      Specified by:
      updateExternalReference in interface ExternalReferencesInterface
      Parameters:
      userId - calling user
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      externalReferenceGUID - unique identifier of external reference
      referenceExternalIdentifier - unique identifier of the external reference in the external asset manager
      isMergeUpdate - are unspecified properties unchanged (true) or replaced with null?
      properties - properties to change
      effectiveTime - the time that the retrieved elements must be effective for
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Throws:
      InvalidParameterException - guid, qualifiedName or userId is null; qualifiedName is not unique; guid is not known
      PropertyServerException - problem accessing property server
      UserNotAuthorizedException - security access problem
    • deleteExternalReference

      public void deleteExternalReference(String userId, String assetManagerGUID, String assetManagerName, String externalReferenceGUID, String referenceExternalIdentifier, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Remove the definition of an external reference.
      Specified by:
      deleteExternalReference in interface ExternalReferencesInterface
      Parameters:
      userId - calling user
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      externalReferenceGUID - unique identifier of external reference
      referenceExternalIdentifier - unique identifier of the external reference in the external asset manager
      effectiveTime - the time that the retrieved elements must be effective for
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Throws:
      InvalidParameterException - guid or userId is null; guid is not known
      PropertyServerException - problem accessing property server
      UserNotAuthorizedException - security access problem
    • linkExternalReferenceToElement

      public String linkExternalReferenceToElement(String userId, String assetManagerGUID, String assetManagerName, boolean assetManagerIsHome, String attachedToGUID, String externalReferenceGUID, ExternalReferenceLinkProperties linkProperties, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Link an external reference to an object.
      Specified by:
      linkExternalReferenceToElement in interface ExternalReferencesInterface
      Parameters:
      userId - the name of the calling user.
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      assetManagerIsHome - ensure that only the asset manager can update this asset
      attachedToGUID - object linked to external references.
      linkProperties - description for the reference from the perspective of the object that the reference is being attached to.
      externalReferenceGUID - unique identifier (guid) of the external reference details.
      effectiveTime - the time that the retrieved elements must be effective for
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Returns:
      Unique identifier for new relationship
      Throws:
      InvalidParameterException - problem with the GUID or the external references are not correctly specified, or are null.
      PropertyServerException - the server is not available.
      UserNotAuthorizedException - the calling user is not authorized to issue the call.
    • updateExternalReferenceToElementLink

      public void updateExternalReferenceToElementLink(String userId, String assetManagerGUID, String assetManagerName, String externalReferenceLinkGUID, ExternalReferenceLinkProperties linkProperties, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Update the link between an external reference to an object.
      Specified by:
      updateExternalReferenceToElementLink in interface ExternalReferencesInterface
      Parameters:
      userId - the name of the calling user.
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      linkProperties - description for the reference from the perspective of the object that the reference is being attached to.
      externalReferenceLinkGUID - unique identifier (guid) of the external reference details.
      effectiveTime - the time that the retrieved elements must be effective for
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Throws:
      InvalidParameterException - problem with the GUID or the external references are not correctly specified, or are null.
      PropertyServerException - the server is not available.
      UserNotAuthorizedException - the calling user is not authorized to issue the call.
    • unlinkExternalReferenceFromElement

      public void unlinkExternalReferenceFromElement(String userId, String assetManagerGUID, String assetManagerName, String externalReferenceLinkGUID, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Remove the link between an external reference and an element. If the element is its anchor, the external reference is removed.
      Specified by:
      unlinkExternalReferenceFromElement in interface ExternalReferencesInterface
      Parameters:
      userId - the name of the calling user.
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      externalReferenceLinkGUID - identifier of the external reference relationship.
      effectiveTime - the time that the retrieved elements must be effective for
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Throws:
      InvalidParameterException - problem with the GUID or the external references are not correctly specified, or are null.
      PropertyServerException - the server is not available.
      UserNotAuthorizedException - the calling user is not authorized to issue the call.
    • getExternalReferences

      public List<ExternalReferenceElement> getExternalReferences(String userId, String assetManagerGUID, String assetManagerName, int startFrom, int pageSize, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Retrieve the list of external references sorted in open metadata.
      Specified by:
      getExternalReferences in interface ExternalReferencesInterface
      Parameters:
      userId - the name of the calling user.
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return.
      effectiveTime - the time that the retrieved elements must be effective for
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Returns:
      links to addition information.
      Throws:
      InvalidParameterException - guid invalid or the external references are not correctly specified, or are null.
      PropertyServerException - the server is not available.
      UserNotAuthorizedException - the calling user is not authorized to issue the call.
    • getExternalReferencesById

      public List<ExternalReferenceElement> getExternalReferencesById(String userId, String assetManagerGUID, String assetManagerName, String resourceId, int startFrom, int pageSize, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Retrieve the list of external references for this resourceId.
      Specified by:
      getExternalReferencesById in interface ExternalReferencesInterface
      Parameters:
      userId - the name of the calling user.
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      resourceId - unique reference id assigned by the resource owner (supports wildcards). This is the qualified name of the entity
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return.
      effectiveTime - the time that the retrieved elements must be effective for
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Returns:
      links to addition information.
      Throws:
      InvalidParameterException - guid invalid or the external references are not correctly specified, or are null.
      PropertyServerException - the server is not available.
      UserNotAuthorizedException - the calling user is not authorized to issue the call.
    • getExternalReferencesByURL

      public List<ExternalReferenceElement> getExternalReferencesByURL(String userId, String assetManagerGUID, String assetManagerName, String url, int startFrom, int pageSize, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Retrieve the list of external references for this URL.
      Specified by:
      getExternalReferencesByURL in interface ExternalReferencesInterface
      Parameters:
      userId - the name of the calling user.
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      url - URL of the external resource.
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return.
      effectiveTime - the time that the retrieved elements must be effective for
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Returns:
      links to addition information.
      Throws:
      InvalidParameterException - guid invalid or the external references are not correctly specified, or are null.
      PropertyServerException - the server is not available.
      UserNotAuthorizedException - the calling user is not authorized to issue the call.
    • getExternalReferencesByName

      public List<ExternalReferenceElement> getExternalReferencesByName(String userId, String assetManagerGUID, String assetManagerName, String name, int startFrom, int pageSize, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Retrieve the list of external references for this name.
      Specified by:
      getExternalReferencesByName in interface ExternalReferencesInterface
      Parameters:
      userId - the name of the calling user.
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      name - qualifiedName or displayName of the external resource.
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return.
      effectiveTime - the time that the retrieved elements must be effective for
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Returns:
      links to addition information.
      Throws:
      InvalidParameterException - guid invalid or the external references are not correctly specified, or are null.
      PropertyServerException - the server is not available.
      UserNotAuthorizedException - the calling user is not authorized to issue the call.
    • getExternalReferencesForAssetManager

      public List<ExternalReferenceElement> getExternalReferencesForAssetManager(String userId, String assetManagerGUID, String assetManagerName, int startFrom, int pageSize, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the list of external reference created on behalf of the named asset manager.
      Specified by:
      getExternalReferencesForAssetManager in interface ExternalReferencesInterface
      Parameters:
      userId - calling user
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      startFrom - paging start point
      pageSize - maximum results that can be returned
      effectiveTime - the time that the retrieved elements must be effective for
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Returns:
      list of matching metadata elements
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - the user is not authorized to issue this request
      PropertyServerException - there is a problem reported in the open metadata server(s)
    • findExternalReferences

      public List<ExternalReferenceElement> findExternalReferences(String userId, String assetManagerGUID, String assetManagerName, String searchString, int startFrom, int pageSize, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Find the external references that contain the search string - which may contain wildcards.
      Specified by:
      findExternalReferences in interface ExternalReferencesInterface
      Parameters:
      userId - the name of the calling user.
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      searchString - regular expression (RegEx) to search for
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return.
      effectiveTime - the time that the retrieved elements must be effective for
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Returns:
      links to addition information.
      Throws:
      InvalidParameterException - guid invalid or the external references are not correctly specified, or are null.
      PropertyServerException - the server is not available.
      UserNotAuthorizedException - the calling user is not authorized to issue the call.
    • retrieveAttachedExternalReferences

      public List<ExternalReferenceLinkElement> retrieveAttachedExternalReferences(String userId, String assetManagerGUID, String assetManagerName, String attachedToGUID, int startFrom, int pageSize, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Retrieve the list of external references attached to the supplied object.
      Specified by:
      retrieveAttachedExternalReferences in interface ExternalReferencesInterface
      Parameters:
      userId - the name of the calling user.
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      attachedToGUID - object linked to external reference.
      startFrom - index of the list to start from (0 for start)
      pageSize - maximum number of elements to return.
      effectiveTime - the time that the retrieved elements must be effective for
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Returns:
      links to addition information.
      Throws:
      InvalidParameterException - guid invalid or the external references are not correctly specified, or are null.
      PropertyServerException - the server is not available.
      UserNotAuthorizedException - the calling user is not authorized to issue the call.
    • getExternalReferenceByGUID

      public ExternalReferenceElement getExternalReferenceByGUID(String userId, String assetManagerGUID, String assetManagerName, String externalReferenceGUID, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Return information about a specific external reference.
      Specified by:
      getExternalReferenceByGUID in interface ExternalReferencesInterface
      Parameters:
      userId - calling user
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      externalReferenceGUID - unique identifier for the external reference
      effectiveTime - the time that the retrieved elements must be effective for
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Returns:
      properties of the external reference
      Throws:
      InvalidParameterException - externalReferenceGUID or userId is null
      PropertyServerException - problem accessing property server
      UserNotAuthorizedException - security access problem