Class DataAssetExchangeHandler


  • public class DataAssetExchangeHandler
    extends Object
    DataAssetExchangeClient is the server-side for managing Data Assets.
    • Constructor Detail

      • DataAssetExchangeHandler

        public DataAssetExchangeHandler​(String serviceName,
                                        String serverName,
                                        InvalidParameterHandler invalidParameterHandler,
                                        RepositoryHandler repositoryHandler,
                                        OMRSRepositoryHelper repositoryHelper,
                                        String localServerUserId,
                                        OpenMetadataServerSecurityVerifier securityVerifier,
                                        List<String> supportedZones,
                                        List<String> defaultZones,
                                        List<String> publishZones,
                                        AuditLog auditLog)
        Construct the data asset exchange handler with information needed to work with asset related objects for Asset Manager OMAS.
        Parameters:
        serviceName - name of this service
        serverName - name of the local server
        invalidParameterHandler - handler for managing parameter errors
        repositoryHandler - manages calls to the repository services
        repositoryHelper - provides utilities for manipulating the repository services objects
        localServerUserId - userId for this server
        securityVerifier - open metadata security services verifier
        supportedZones - list of zones that the access service is allowed to serve instances from.
        defaultZones - list of zones that the access service should set in all new instances.
        publishZones - list of zones that the access service sets up in published instances.
        auditLog - destination for audit log events.
    • Method Detail

      • createDataAsset

        public String createDataAsset​(String userId,
                                      MetadataCorrelationProperties correlationProperties,
                                      boolean assetManagerIsHome,
                                      DataAssetProperties assetProperties,
                                      boolean forLineage,
                                      boolean forDuplicateProcessing,
                                      Date effectiveTime,
                                      String methodName)
                               throws InvalidParameterException,
                                      UserNotAuthorizedException,
                                      PropertyServerException
        Create a new metadata element to represent the root of an asset.
        Parameters:
        userId - calling user
        correlationProperties - properties to help with the mapping of the elements in the external asset manager and open metadata
        assetManagerIsHome - ensure that only the asset manager can update this asset
        assetProperties - properties to store
        forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
        forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        unique identifier of the new metadata element
        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)
      • createDataAssetFromTemplate

        public String createDataAssetFromTemplate​(String userId,
                                                  MetadataCorrelationProperties correlationProperties,
                                                  boolean assetManagerIsHome,
                                                  String templateGUID,
                                                  TemplateProperties templateProperties,
                                                  String methodName)
                                           throws InvalidParameterException,
                                                  UserNotAuthorizedException,
                                                  PropertyServerException
        Create a new metadata element to represent an asset using an existing metadata element as a template. The template defines additional classifications and relationships that should be added to the new asset.
        Parameters:
        userId - calling user
        correlationProperties - properties to help with the mapping of the elements in the external asset manager and open metadata
        assetManagerIsHome - ensure that only the asset manager can update this asset
        templateGUID - unique identifier of the metadata element to copy
        templateProperties - properties that override the template
        methodName - calling method
        Returns:
        unique identifier of the new metadata element
        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)
      • updateDataAsset

        public void updateDataAsset​(String userId,
                                    MetadataCorrelationProperties correlationProperties,
                                    String assetGUID,
                                    boolean isMergeUpdate,
                                    DataAssetProperties assetProperties,
                                    boolean forLineage,
                                    boolean forDuplicateProcessing,
                                    Date effectiveTime,
                                    String methodName)
                             throws InvalidParameterException,
                                    UserNotAuthorizedException,
                                    PropertyServerException
        Update the metadata element representing an asset.
        Parameters:
        userId - calling user
        correlationProperties - properties to help with the mapping of the elements in the external asset manager and open metadata
        assetGUID - unique identifier of the metadata element to update
        isMergeUpdate - should the new properties be merged with existing properties (true) or completely replace them (false)?
        assetProperties - new properties for this element
        forLineage - return elements marked with the Memento classification?
        forDuplicateProcessing - do not merge elements marked as duplicates?
        effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
        methodName - calling method
        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)
      • publishDataAsset

        public void publishDataAsset​(String userId,
                                     String assetGUID,
                                     boolean forLineage,
                                     boolean forDuplicateProcessing,
                                     Date effectiveTime,
                                     String methodName)
                              throws InvalidParameterException,
                                     UserNotAuthorizedException,
                                     PropertyServerException
        Update the zones for the asset so that it becomes visible to consumers. (The zones are set to the list of zones in the publishedZones option configured for each instance of the Asset Manager OMAS).
        Parameters:
        userId - calling user
        assetGUID - unique identifier of the metadata element to publish
        forLineage - return elements marked with the Memento classification?
        forDuplicateProcessing - do not merge elements marked as duplicates?
        effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
        methodName - calling method
        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)
      • withdrawDataAsset

        public void withdrawDataAsset​(String userId,
                                      String assetGUID,
                                      boolean forLineage,
                                      boolean forDuplicateProcessing,
                                      Date effectiveTime,
                                      String methodName)
                               throws InvalidParameterException,
                                      UserNotAuthorizedException,
                                      PropertyServerException
        Update the zones for the asset so that it is no longer visible to consumers. (The zones are set to the list of zones in the defaultZones option configured for each instance of the Asset Manager OMAS. This is the setting when the database is first created).
        Parameters:
        userId - calling user
        assetGUID - unique identifier of the metadata element to withdraw
        forLineage - return elements marked with the Memento classification?
        forDuplicateProcessing - do not merge elements marked as duplicates?
        effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
        methodName - calling method
        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)
      • removeDataAsset

        public void removeDataAsset​(String userId,
                                    MetadataCorrelationProperties correlationProperties,
                                    String assetGUID,
                                    boolean forLineage,
                                    boolean forDuplicateProcessing,
                                    Date effectiveTime,
                                    String methodName)
                             throws InvalidParameterException,
                                    UserNotAuthorizedException,
                                    PropertyServerException
        Remove the metadata element representing an asset. This will delete the asset and all anchored elements such as schema and comments.
        Parameters:
        userId - calling user
        correlationProperties - properties to help with the mapping of the elements in the external asset manager and open metadata
        assetGUID - unique identifier of the metadata element to remove
        forLineage - return elements marked with the Memento classification?
        forDuplicateProcessing - do not merge elements marked as duplicates?
        effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
        methodName - calling method
        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)
      • setDataAssetAsReferenceData

        public void setDataAssetAsReferenceData​(String userId,
                                                String assetGUID,
                                                boolean forLineage,
                                                boolean forDuplicateProcessing,
                                                Date effectiveTime,
                                                String methodName)
                                         throws InvalidParameterException,
                                                UserNotAuthorizedException,
                                                PropertyServerException
        Classify the asset to indicate that it can be used as reference data.
        Parameters:
        userId - calling user
        assetGUID - unique identifier of the metadata element to update
        forLineage - return elements marked with the Memento classification?
        forDuplicateProcessing - do not merge elements marked as duplicates?
        effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
        methodName - calling method
        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)
      • clearDataAssetAsReferenceData

        public void clearDataAssetAsReferenceData​(String userId,
                                                  String assetGUID,
                                                  boolean forLineage,
                                                  boolean forDuplicateProcessing,
                                                  Date effectiveTime,
                                                  String methodName)
                                           throws InvalidParameterException,
                                                  UserNotAuthorizedException,
                                                  PropertyServerException
        Remove the reference data designation from the asset.
        Parameters:
        userId - calling user
        assetGUID - unique identifier of the metadata element to remove
        forLineage - return elements marked with the Memento classification?
        forDuplicateProcessing - do not merge elements marked as duplicates?
        effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
        methodName - calling method
        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)
      • setupRelatedDataAsset

        public String setupRelatedDataAsset​(String userId,
                                            String assetManagerGUID,
                                            String assetManagerName,
                                            boolean assetManagerIsHome,
                                            String relationshipTypeName,
                                            String fromAssetGUID,
                                            String toAssetGUID,
                                            RelationshipProperties relationshipProperties,
                                            boolean forLineage,
                                            boolean forDuplicateProcessing,
                                            Date effectiveTime,
                                            String methodName)
                                     throws InvalidParameterException,
                                            UserNotAuthorizedException,
                                            PropertyServerException
        Link two asset together. Use information from the relationship type definition to ensure the fromAssetGUID and toAssetGUID are the right way around.
        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 process manager can update this process
        relationshipTypeName - type name of relationship to create
        fromAssetGUID - unique identifier of the asset at end 1 of the relationship
        toAssetGUID - unique identifier of the asset at end 2 of the relationship
        relationshipProperties - unique identifier for this relationship
        forLineage - return elements marked with the Memento classification?
        forDuplicateProcessing - do not merge elements marked as duplicates?
        effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
        methodName - calling method
        Returns:
        unique identifier of the relationship
        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)
      • getAssetRelationship

        public RelationshipElement getAssetRelationship​(String userId,
                                                        String assetManagerGUID,
                                                        String assetManagerName,
                                                        String relationshipTypeName,
                                                        String fromAssetGUID,
                                                        String toAssetGUID,
                                                        boolean forLineage,
                                                        boolean forDuplicateProcessing,
                                                        Date effectiveTime,
                                                        String methodName)
                                                 throws InvalidParameterException,
                                                        UserNotAuthorizedException,
                                                        PropertyServerException
        Retrieve the relationship between two elements.
        Parameters:
        userId - calling user
        assetManagerGUID - unique identifier of software server capability representing the caller
        assetManagerName - unique name of software server capability representing the caller
        relationshipTypeName - type name of relationship to create
        fromAssetGUID - unique identifier of the asset at end 1 of the relationship
        toAssetGUID - unique identifier of the asset at end 2 of the relationship
        forLineage - return elements marked with the Memento classification?
        forDuplicateProcessing - do not merge elements marked as duplicates?
        effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
        methodName - calling method
        Returns:
        unique identifier and properties of the relationship
        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)
      • updateAssetRelationship

        public void updateAssetRelationship​(String userId,
                                            String assetManagerGUID,
                                            String assetManagerName,
                                            String relationshipTypeName,
                                            String relationshipGUID,
                                            boolean isMergeUpdate,
                                            RelationshipProperties relationshipProperties,
                                            boolean forLineage,
                                            boolean forDuplicateProcessing,
                                            Date effectiveTime,
                                            String methodName)
                                     throws InvalidParameterException,
                                            UserNotAuthorizedException,
                                            PropertyServerException
        Update relationship between two elements.
        Parameters:
        userId - calling user
        assetManagerGUID - unique identifier of software server capability representing the caller
        assetManagerName - unique name of software server capability representing the caller
        relationshipTypeName - type name of relationship to update
        relationshipGUID - unique identifier of the relationship
        relationshipProperties - description and/or purpose of the relationship
        isMergeUpdate - should the new properties be merged with the existing properties, or replace them entirely
        forLineage - return elements marked with the Memento classification?
        forDuplicateProcessing - do not merge elements marked as duplicates?
        effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
        methodName - calling method
        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)
      • clearAssetRelationship

        public void clearAssetRelationship​(String userId,
                                           String assetManagerGUID,
                                           String assetManagerName,
                                           String relationshipTypeName,
                                           String relationshipGUID,
                                           boolean forLineage,
                                           boolean forDuplicateProcessing,
                                           Date effectiveTime,
                                           String methodName)
                                    throws InvalidParameterException,
                                           UserNotAuthorizedException,
                                           PropertyServerException
        Remove the relationship between two elements.
        Parameters:
        userId - calling user
        assetManagerGUID - unique identifier of software server capability representing the caller
        assetManagerName - unique name of software server capability representing the caller
        relationshipTypeName - type name of relationship to delete
        relationshipGUID - unique identifier of the relationship
        forLineage - return elements marked with the Memento classification?
        forDuplicateProcessing - do not merge elements marked as duplicates?
        effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
        methodName - calling method
        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)
      • getRelatedAssetsAtEnd2

        public List<RelationshipElement> getRelatedAssetsAtEnd2​(String userId,
                                                                String assetManagerGUID,
                                                                String assetManagerName,
                                                                String relationshipTypeName,
                                                                String fromAssetGUID,
                                                                int startingFrom,
                                                                int pageSize,
                                                                boolean forLineage,
                                                                boolean forDuplicateProcessing,
                                                                Date effectiveTime,
                                                                String methodName)
                                                         throws InvalidParameterException,
                                                                UserNotAuthorizedException,
                                                                PropertyServerException
        Retrieve the requested relationships linked from a specific element at end 2.
        Parameters:
        userId - calling user
        assetManagerGUID - unique identifier of software server capability representing the caller
        assetManagerName - unique name of software server capability representing the caller
        relationshipTypeName - type name of relationship to delete
        fromAssetGUID - unique identifier of the asset at end 1 of the relationship
        startingFrom - start position for results
        pageSize - maximum number of results
        forLineage - return elements marked with the Memento classification?
        forDuplicateProcessing - do not merge elements marked as duplicates?
        effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
        methodName - calling method
        Returns:
        unique identifier and properties of the relationship
        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)
      • getRelatedAssetsAtEnd1

        public List<RelationshipElement> getRelatedAssetsAtEnd1​(String userId,
                                                                String assetManagerGUID,
                                                                String assetManagerName,
                                                                String relationshipTypeName,
                                                                String toAssetGUID,
                                                                int startingFrom,
                                                                int pageSize,
                                                                boolean forLineage,
                                                                boolean forDuplicateProcessing,
                                                                Date effectiveTime,
                                                                String methodName)
                                                         throws InvalidParameterException,
                                                                UserNotAuthorizedException,
                                                                PropertyServerException
        Retrieve the relationships linked from a specific element at end 2 of the relationship.
        Parameters:
        userId - calling user
        assetManagerGUID - unique identifier of software server capability representing the caller
        assetManagerName - unique name of software server capability representing the caller
        relationshipTypeName - type name of relationship to delete
        toAssetGUID - unique identifier of the asset at end 2 of the relationship
        startingFrom - start position for results
        pageSize - maximum number of results
        forLineage - return elements marked with the Memento classification?
        forDuplicateProcessing - do not merge elements marked as duplicates?
        effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
        methodName - calling method
        Returns:
        unique identifier and properties of the relationship
        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)
      • findDataAssets

        public List<DataAssetElement> findDataAssets​(String userId,
                                                     String assetManagerGUID,
                                                     String assetManagerName,
                                                     String searchString,
                                                     int startFrom,
                                                     int pageSize,
                                                     boolean forLineage,
                                                     boolean forDuplicateProcessing,
                                                     Date effectiveTime,
                                                     String methodName)
                                              throws InvalidParameterException,
                                                     UserNotAuthorizedException,
                                                     PropertyServerException
        Retrieve the list of asset metadata elements that contain the search string. The search string is treated as a regular expression.
        Parameters:
        userId - calling user
        assetManagerGUID - unique identifier of software server capability representing the caller
        assetManagerName - unique name of software server capability representing the caller
        searchString - string to find in the properties
        startFrom - paging start point
        pageSize - maximum results that can be returned
        forLineage - return elements marked with the Memento classification?
        forDuplicateProcessing - do not merge elements marked as duplicates?
        effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
        methodName - calling method
        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)
      • scanDataAssets

        public List<DataAssetElement> scanDataAssets​(String userId,
                                                     String assetManagerGUID,
                                                     String assetManagerName,
                                                     int startFrom,
                                                     int pageSize,
                                                     boolean forLineage,
                                                     boolean forDuplicateProcessing,
                                                     Date effectiveTime,
                                                     String methodName)
                                              throws InvalidParameterException,
                                                     UserNotAuthorizedException,
                                                     PropertyServerException
        Step through the assets visible to this caller.
        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
        forLineage - return elements marked with the Memento classification?
        forDuplicateProcessing - do not merge elements marked as duplicates?
        effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
        methodName - calling method
        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)
      • getDataAssetsByName

        public List<DataAssetElement> getDataAssetsByName​(String userId,
                                                          String assetManagerGUID,
                                                          String assetManagerName,
                                                          String name,
                                                          int startFrom,
                                                          int pageSize,
                                                          boolean forLineage,
                                                          boolean forDuplicateProcessing,
                                                          Date effectiveTime,
                                                          String methodName)
                                                   throws InvalidParameterException,
                                                          UserNotAuthorizedException,
                                                          PropertyServerException
        Retrieve the list of asset metadata elements with a matching qualified or display name. There are no wildcards supported on this request.
        Parameters:
        userId - calling user
        assetManagerGUID - unique identifier of software server capability representing the caller
        assetManagerName - unique name of software server capability representing the caller
        name - name to search for
        startFrom - paging start point
        pageSize - maximum results that can be returned
        forLineage - return elements marked with the Memento classification?
        forDuplicateProcessing - do not merge elements marked as duplicates?
        effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
        methodName - calling method
        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)
      • getDataAssetsForAssetManager

        public List<DataAssetElement> getDataAssetsForAssetManager​(String userId,
                                                                   String assetManagerGUID,
                                                                   String assetManagerName,
                                                                   int startFrom,
                                                                   int pageSize,
                                                                   boolean forLineage,
                                                                   boolean forDuplicateProcessing,
                                                                   Date effectiveTime,
                                                                   String methodName)
                                                            throws InvalidParameterException,
                                                                   UserNotAuthorizedException,
                                                                   PropertyServerException
        Retrieve the list of assets created on behalf of the named asset manager.
        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
        forLineage - return elements marked with the Memento classification?
        forDuplicateProcessing - do not merge elements marked as duplicates?
        effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
        methodName - calling method
        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)
      • getDataAssetByGUID

        public DataAssetElement getDataAssetByGUID​(String userId,
                                                   String assetManagerGUID,
                                                   String assetManagerName,
                                                   String openMetadataGUID,
                                                   boolean forLineage,
                                                   boolean forDuplicateProcessing,
                                                   Date effectiveTime,
                                                   String methodName)
                                            throws InvalidParameterException,
                                                   UserNotAuthorizedException,
                                                   PropertyServerException
        Retrieve the asset metadata element with the supplied unique identifier.
        Parameters:
        userId - calling user
        assetManagerGUID - unique identifier of software server capability representing the caller
        assetManagerName - unique name of software server capability representing the caller
        openMetadataGUID - unique identifier of the requested metadata element
        forLineage - return elements marked with the Memento classification?
        forDuplicateProcessing - do not merge elements marked as duplicates?
        effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
        methodName - calling method
        Returns:
        matching metadata element
        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)