Class OpenMetadataAPIGenericHandler<B>

    • Constructor Detail

      • OpenMetadataAPIGenericHandler

        public OpenMetadataAPIGenericHandler​(OpenMetadataAPIGenericConverter<B> converter,
                                             Class<B> beanClass,
                                             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 handler information needed to interact with the repository services
        Parameters:
        converter - specific converter for this bean class
        beanClass - name of bean class that is represented by the generic class B
        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 Asset instances from.
        defaultZones - list of zones that the access service should set in all new Asset instances.
        publishZones - list of zones that the access service sets up in published Asset instances.
        auditLog - destination for audit log events.
    • Method Detail

      • setSecurityVerifier

        public void setSecurityVerifier​(OpenMetadataServerSecurityVerifier securityVerifier)
        Set up a new security verifier (the handler runs with a default verifier until this method is called). The security verifier provides authorization checks for access and maintenance changes to open metadata. Authorization checks are enabled through the OpenMetadataServerSecurityConnector.
        Parameters:
        securityVerifier - new security verifier
      • getRepositoryHelper

        public OMRSRepositoryHelper getRepositoryHelper()
        Return the repository helper for this server.
        Returns:
        repository helper object
      • getRepositoryHandler

        public RepositoryHandler getRepositoryHandler()
        Return the repository handler for this server.
        Returns:
        repository handler object
      • getTypeDefByName

        public TypeDef getTypeDefByName​(String suppliedTypeName,
                                        String defaultTypeName)
        Return the type definition for the named type.
        Parameters:
        suppliedTypeName - caller's subtype (or null)
        defaultTypeName - common super type
        Returns:
        type definition
      • getServiceName

        public String getServiceName()
        Return the name of this service.
        Returns:
        string name
      • getServerName

        public String getServerName()
        Return the name of this server.
        Returns:
        string name
      • setClassificationInRepository

        public void setClassificationInRepository​(String userId,
                                                  String beanGUID,
                                                  String beanGUIDParameterName,
                                                  String beanGUIDTypeName,
                                                  String classificationTypeGUID,
                                                  String classificationTypeName,
                                                  InstanceProperties classificationProperties,
                                                  String methodName)
                                           throws InvalidParameterException,
                                                  PropertyServerException,
                                                  UserNotAuthorizedException
        Add the requested classification to the matching entity in the repository.
        Parameters:
        userId - calling user
        beanGUID - unique identifier of the entity in the repositories
        beanGUIDParameterName - parameter name that passed the beanGUID
        beanGUIDTypeName - type of bean
        classificationTypeGUID - unique identifier of classification type
        classificationTypeName - unique name of classification type
        classificationProperties - properties to save in the classification
        methodName - calling method
        Throws:
        InvalidParameterException - the classification name is null
        PropertyServerException - there is a problem with the repositories
        UserNotAuthorizedException - the user is not allowed to update the security tags
      • setClassificationInRepository

        public void setClassificationInRepository​(String userId,
                                                  String externalSourceGUID,
                                                  String externalSourceName,
                                                  String beanGUID,
                                                  String beanGUIDParameterName,
                                                  String beanGUIDTypeName,
                                                  String classificationTypeGUID,
                                                  String classificationTypeName,
                                                  InstanceProperties classificationProperties,
                                                  boolean isMergeUpdate,
                                                  String methodName)
                                           throws InvalidParameterException,
                                                  PropertyServerException,
                                                  UserNotAuthorizedException
        Add the requested classification to the matching entity in the repository.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        beanGUID - unique identifier of the entity in the repositories
        beanGUIDParameterName - parameter name that passed the beanGUID
        beanGUIDTypeName - type of bean
        classificationTypeGUID - unique identifier of classification type
        classificationTypeName - unique name of classification type
        classificationProperties - properties to save in the classification
        isMergeUpdate - should the properties be merged with the existing properties or completely over-write them
        methodName - calling method
        Throws:
        InvalidParameterException - the classification name is null
        PropertyServerException - there is a problem with the repositories
        UserNotAuthorizedException - the user is not allowed to update the security tags
      • setClassificationInRepository

        public void setClassificationInRepository​(String userId,
                                                  String externalSourceGUID,
                                                  String externalSourceName,
                                                  String beanGUID,
                                                  String beanGUIDParameterName,
                                                  String beanGUIDTypeName,
                                                  String classificationTypeGUID,
                                                  String classificationTypeName,
                                                  Date effectiveFrom,
                                                  Date effectiveTo,
                                                  boolean forLineage,
                                                  boolean forDuplicateProcessing,
                                                  boolean isMergeUpdate,
                                                  Map<String,​Object> classificationProperties,
                                                  String methodName)
                                           throws InvalidParameterException,
                                                  PropertyServerException,
                                                  UserNotAuthorizedException
        Add the requested classification to the matching entity in the repository.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        beanGUID - unique identifier of the entity in the repositories
        beanGUIDParameterName - parameter name that passed the beanGUID
        beanGUIDTypeName - type of bean
        classificationTypeGUID - unique identifier of classification type
        classificationTypeName - unique name of classification type
        effectiveFrom - when should relationship be effective - null means immediately
        effectiveTo - when should relationship no longer be effective - null means never
        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
        isMergeUpdate - should the properties be merged with the existing properties or completely over-write them
        classificationProperties - properties to save in the classification
        methodName - calling method
        Throws:
        InvalidParameterException - the classification name is null
        PropertyServerException - there is a problem with the repositories
        UserNotAuthorizedException - the user is not allowed to update the security tags
      • setClassificationInRepository

        public void setClassificationInRepository​(String userId,
                                                  String externalSourceGUID,
                                                  String externalSourceName,
                                                  String beanGUID,
                                                  String beanGUIDParameterName,
                                                  String beanGUIDTypeName,
                                                  String classificationTypeGUID,
                                                  String classificationTypeName,
                                                  InstanceProperties classificationProperties,
                                                  boolean isMergeUpdate,
                                                  boolean forLineage,
                                                  boolean forDuplicateProcessing,
                                                  Date effectiveTime,
                                                  String methodName)
                                           throws InvalidParameterException,
                                                  PropertyServerException,
                                                  UserNotAuthorizedException
        Add the requested classification to the matching entity in the repository.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        beanGUID - unique identifier of the entity in the repositories
        beanGUIDParameterName - parameter name that passed the beanGUID
        beanGUIDTypeName - type of bean
        classificationTypeGUID - unique identifier of classification type
        classificationTypeName - unique name of classification type
        classificationProperties - properties to save in the classification
        isMergeUpdate - should the properties be merged with the existing properties or completely over-write them
        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
        Throws:
        InvalidParameterException - the classification name is null
        PropertyServerException - there is a problem with the repositories
        UserNotAuthorizedException - the user is not allowed to update the security tags
      • setClassificationInRepository

        public void setClassificationInRepository​(String userId,
                                                  String externalSourceGUID,
                                                  String externalSourceName,
                                                  EntityDetail beanEntity,
                                                  String beanGUIDParameterName,
                                                  String beanGUIDTypeName,
                                                  String classificationTypeGUID,
                                                  String classificationTypeName,
                                                  InstanceProperties classificationProperties,
                                                  boolean isMergeUpdate,
                                                  boolean forDuplicateProcessing,
                                                  boolean forLineage,
                                                  Date effectiveTime,
                                                  String methodName)
                                           throws InvalidParameterException,
                                                  PropertyServerException,
                                                  UserNotAuthorizedException
        Add the requested classification to the matching entity in the repository.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        beanEntity - entity that the classification is for
        beanGUIDParameterName - parameter name that passed the beanGUID
        beanGUIDTypeName - type of bean
        classificationTypeGUID - unique identifier of classification type
        classificationTypeName - unique name of classification type
        classificationProperties - properties to save in the classification
        isMergeUpdate - should the properties be merged with the existing properties or completely over-write them
        forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
        forLineage - the query is for lineage so ignore Memento classifications
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Throws:
        InvalidParameterException - the classification name is null
        PropertyServerException - there is a problem with the repositories
        UserNotAuthorizedException - the user is not allowed to update the security tags
      • updateClassificationEffectivityDates

        public void updateClassificationEffectivityDates​(String userId,
                                                         String externalSourceGUID,
                                                         String externalSourceName,
                                                         String beanGUID,
                                                         String beanGUIDParameterName,
                                                         String beanGUIDTypeName,
                                                         String classificationTypeGUID,
                                                         String classificationTypeName,
                                                         boolean forLineage,
                                                         boolean forDuplicateProcessing,
                                                         Date effectiveFrom,
                                                         Date effectiveTo,
                                                         String methodName)
                                                  throws InvalidParameterException,
                                                         UserNotAuthorizedException,
                                                         PropertyServerException
        Update the effectivity dates of a specific classification attached to a metadata element. The effectivity dates control the visibility of the classification through specific APIs.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        beanGUID - unique identifier of the entity in the repositories
        beanGUIDParameterName - parameter name that passed the beanGUID
        beanGUIDTypeName - type of bean
        classificationTypeGUID - unique identifier of classification type
        classificationTypeName - unique name of classification type
        forLineage - the query is to support lineage retrieval
        forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
        effectiveFrom - the date when this element is active - null for active now
        effectiveTo - the date when this element becomes inactive - null for active until deleted
        methodName - calling method
        Throws:
        InvalidParameterException - either the unique identifier or the status are invalid in some way
        UserNotAuthorizedException - the governance action service is not authorized to update this element
        PropertyServerException - there is a problem with the metadata store
      • updateClassificationEffectivityDates

        public void updateClassificationEffectivityDates​(String userId,
                                                         String externalSourceGUID,
                                                         String externalSourceName,
                                                         String beanGUID,
                                                         String beanGUIDParameterName,
                                                         String beanGUIDTypeName,
                                                         String classificationTypeGUID,
                                                         String classificationTypeName,
                                                         boolean forLineage,
                                                         boolean forDuplicateProcessing,
                                                         Date effectiveFrom,
                                                         Date effectiveTo,
                                                         Date effectiveTime,
                                                         String methodName)
                                                  throws InvalidParameterException,
                                                         UserNotAuthorizedException,
                                                         PropertyServerException
        Update the effectivity dates of a specific classification attached to a metadata element. The effectivity dates control the visibility of the classification through specific APIs.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        beanGUID - unique identifier of the entity in the repositories
        beanGUIDParameterName - parameter name that passed the beanGUID
        beanGUIDTypeName - type of bean
        classificationTypeGUID - unique identifier of classification type
        classificationTypeName - unique name of classification type
        forLineage - the query is to support lineage retrieval
        forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
        effectiveFrom - the date when this element is active - null for active now
        effectiveTo - the date when this element becomes inactive - null for active until deleted
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Throws:
        InvalidParameterException - either the unique identifier or the status are invalid in some way
        UserNotAuthorizedException - the governance action service is not authorized to update this element
        PropertyServerException - there is a problem with the metadata store
      • updateBeanEffectivityDates

        public void updateBeanEffectivityDates​(String userId,
                                               String externalSourceGUID,
                                               String externalSourceName,
                                               String beanGUID,
                                               String beanGUIDParameterName,
                                               String beanGUIDTypeGUID,
                                               String beanGUIDTypeName,
                                               boolean forLineage,
                                               boolean forDuplicateProcessing,
                                               Date effectiveFrom,
                                               Date effectiveTo,
                                               String methodName)
                                        throws InvalidParameterException,
                                               UserNotAuthorizedException,
                                               PropertyServerException
        Update the effectivity dates of a specific entity. The effectivity dates control the visibility of the entity through specific APIs.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        beanGUID - unique identifier of the entity in the repositories
        beanGUIDParameterName - parameter name that passed the beanGUID
        beanGUIDTypeGUID - type of bean
        beanGUIDTypeName - type of bean
        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
        effectiveFrom - the date when this element is active - null for active now
        effectiveTo - the date when this element becomes inactive - null for active until deleted
        methodName - calling method
        Throws:
        InvalidParameterException - either the unique identifier or the status are invalid in some way
        UserNotAuthorizedException - the governance action service is not authorized to update this element
        PropertyServerException - there is a problem with the metadata store
      • updateBeanEffectivityDates

        public void updateBeanEffectivityDates​(String userId,
                                               String externalSourceGUID,
                                               String externalSourceName,
                                               String beanGUID,
                                               String beanGUIDParameterName,
                                               String beanGUIDTypeGUID,
                                               String beanGUIDTypeName,
                                               boolean forLineage,
                                               boolean forDuplicateProcessing,
                                               Date effectiveFrom,
                                               Date effectiveTo,
                                               Date effectiveTime,
                                               String methodName)
                                        throws InvalidParameterException,
                                               UserNotAuthorizedException,
                                               PropertyServerException
        Update the effectivity dates of a specific entity . The effectivity dates control the visibility of the entity through specific APIs.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        beanGUID - unique identifier of the entity in the repositories
        beanGUIDParameterName - parameter name that passed the beanGUID
        beanGUIDTypeGUID - type of bean
        beanGUIDTypeName - type of bean
        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
        effectiveFrom - the date when this element is active - null for active now
        effectiveTo - the date when this element becomes inactive - null for active until deleted
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Throws:
        InvalidParameterException - either the unique identifier or the status are invalid in some way
        UserNotAuthorizedException - the governance action service is not authorized to update this element
        PropertyServerException - there is a problem with the metadata store
      • updateRelationshipEffectivityDates

        public void updateRelationshipEffectivityDates​(String userId,
                                                       String externalSourceGUID,
                                                       String externalSourceName,
                                                       String relationshipGUID,
                                                       String relationshipGUIDParameterName,
                                                       String relationshipGUIDTypeName,
                                                       Date effectiveFrom,
                                                       Date effectiveTo,
                                                       String methodName)
                                                throws InvalidParameterException,
                                                       UserNotAuthorizedException,
                                                       PropertyServerException
        Update the effectivity dates of a specific relationship. The effectivity dates control the visibility of the relationship through specific APIs.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        relationshipGUID - unique identifier of the entity in the repositories
        relationshipGUIDParameterName - parameter name that passed the relationshipGUID
        relationshipGUIDTypeName - type of relationship
        effectiveFrom - the date when this element is active - null for active now
        effectiveTo - the date when this element becomes inactive - null for active until deleted
        methodName - calling method
        Throws:
        InvalidParameterException - either the unique identifier or the status are invalid in some way
        UserNotAuthorizedException - the governance action service is not authorized to update this element
        PropertyServerException - there is a problem with the metadata store
      • updateRelationshipEffectivityDates

        public void updateRelationshipEffectivityDates​(String userId,
                                                       String externalSourceGUID,
                                                       String externalSourceName,
                                                       String relationshipGUID,
                                                       String relationshipGUIDParameterName,
                                                       String relationshipGUIDTypeName,
                                                       Date effectiveFrom,
                                                       Date effectiveTo,
                                                       Date effectiveTime,
                                                       String methodName)
                                                throws InvalidParameterException,
                                                       UserNotAuthorizedException,
                                                       PropertyServerException
        Update the effectivity dates of a specific relationship. The effectivity dates control the visibility of the relationship through specific APIs.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        relationshipGUID - unique identifier of the entity in the repositories
        relationshipGUIDParameterName - parameter name that passed the relationshipGUID
        relationshipGUIDTypeName - type of relationship
        effectiveFrom - the date when this element is active - null for active now
        effectiveTo - the date when this element becomes inactive - null for active until deleted
        effectiveTime - what is the effective time for related queries needed to do the update
        methodName - calling method
        Throws:
        InvalidParameterException - either the unique identifier or the status are invalid in some way
        UserNotAuthorizedException - the governance action service is not authorized to update this element
        PropertyServerException - there is a problem with the metadata store
      • updateRelationshipProperties

        public void updateRelationshipProperties​(String userId,
                                                 String externalSourceGUID,
                                                 String externalSourceName,
                                                 String relationshipGUID,
                                                 String relationshipGUIDParameterName,
                                                 String relationshipTypeName,
                                                 boolean isMergeUpdate,
                                                 InstanceProperties relationshipProperties,
                                                 String methodName)
                                          throws InvalidParameterException,
                                                 UserNotAuthorizedException,
                                                 PropertyServerException
        Update the properties associated with a relationship. Effectivity dates are unchanged.
        Parameters:
        userId - caller's userId
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        relationshipGUID - unique identifier of the relationship to update
        relationshipGUIDParameterName - name of the parameter supplying the relationshipGUID
        relationshipTypeName - type name of relationship if known (null is ok)
        isMergeUpdate - should the supplied updateProperties be merged with existing properties (true) by replacing the just the properties with matching names, or should the entire properties of the instance be replaced?
        relationshipProperties - new properties for the relationship
        methodName - calling method
        Throws:
        InvalidParameterException - the unique identifier of the relationship is null or invalid in some way; the properties are not valid for this type of relationship
        UserNotAuthorizedException - the governance action service is not authorized to update this relationship
        PropertyServerException - there is a problem with the metadata store
      • deleteRelationship

        public void deleteRelationship​(String userId,
                                       String externalSourceGUID,
                                       String externalSourceName,
                                       String relationshipGUID,
                                       String relationshipGUIDParameterName,
                                       String relationshipTypeName,
                                       Date effectiveTime,
                                       String methodName)
                                throws InvalidParameterException,
                                       UserNotAuthorizedException,
                                       PropertyServerException
        Update the properties associated with a relationship. Effectivity dates are unchanged.
        Parameters:
        userId - caller's userId
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        relationshipGUID - unique identifier of the relationship to update
        relationshipGUIDParameterName - name of the parameter supplying the relationshipGUID
        relationshipTypeName - type name of relationship if known (null is ok)
        effectiveTime - time when the relationship is effective
        methodName - calling method
        Throws:
        InvalidParameterException - the unique identifier of the relationship is null or invalid in some way; the properties are not valid for this type of relationship
        UserNotAuthorizedException - the governance action service is not authorized to update this relationship
        PropertyServerException - there is a problem with the metadata store
      • removeClassificationFromRepository

        public void removeClassificationFromRepository​(String userId,
                                                       String beanGUID,
                                                       String beanGUIDParameterName,
                                                       String beanGUIDTypeName,
                                                       String classificationTypeGUID,
                                                       String classificationTypeName,
                                                       String methodName)
                                                throws InvalidParameterException,
                                                       PropertyServerException,
                                                       UserNotAuthorizedException
        Remove the requested classification from the matching entity in the repository.
        Parameters:
        userId - calling user
        beanGUID - unique identifier of the entity in the repositories
        beanGUIDParameterName - parameter name that passed the beanGUID
        beanGUIDTypeName - type of bean
        classificationTypeGUID - unique identifier of classification type
        classificationTypeName - unique name of classification type
        methodName - calling method
        Throws:
        InvalidParameterException - the classification name is null
        PropertyServerException - there is a problem with the repositories
        UserNotAuthorizedException - the user is not allowed to update the security tags
      • removeClassificationFromRepository

        public void removeClassificationFromRepository​(String userId,
                                                       String externalSourceGUID,
                                                       String externalSourceName,
                                                       String beanGUID,
                                                       String beanGUIDParameterName,
                                                       String beanGUIDTypeName,
                                                       String classificationTypeGUID,
                                                       String classificationTypeName,
                                                       boolean forLineage,
                                                       boolean forDuplicateProcessing,
                                                       Date effectiveTime,
                                                       String methodName)
                                                throws InvalidParameterException,
                                                       PropertyServerException,
                                                       UserNotAuthorizedException
        Remove the requested classification from the matching entity in the repository.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        beanGUID - unique identifier of the entity in the repositories
        beanGUIDParameterName - parameter name that passed the beanGUID
        beanGUIDTypeName - type of bean
        classificationTypeGUID - unique identifier of classification type
        classificationTypeName - unique name of classification type
        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
        Throws:
        InvalidParameterException - the classification name is null
        PropertyServerException - there is a problem with the repositories
        UserNotAuthorizedException - the user is not allowed to update the security tags
      • getAnchorGUIDFromAnchorsClassification

        public String getAnchorGUIDFromAnchorsClassification​(EntityDetail connectToEntity,
                                                             String methodName)
        Retrieve the anchorGUID property from the Anchors classification if present. A null is returned if the Anchors classification is missing, or the property is missing from the classification or is null.
        Parameters:
        connectToEntity - entity containing the classifications
        methodName - calling method
        Returns:
        anchorGUID or null
      • validateAnchorEntity

        public EntityDetail validateAnchorEntity​(String userId,
                                                 String connectToGUID,
                                                 String connectToGUIDParameterName,
                                                 String connectToType,
                                                 boolean isUpdate,
                                                 boolean forLineage,
                                                 boolean forDuplicateProcessing,
                                                 List<String> suppliedSupportedZones,
                                                 Date effectiveTime,
                                                 String methodName)
                                          throws InvalidParameterException,
                                                 PropertyServerException,
                                                 UserNotAuthorizedException
        Validates whether an operation is valid based on the type of entity it is connecting to, who the user is and whether it is a read or an update.
        Parameters:
        userId - userId of user making request.
        connectToGUID - unique id for the object to connect the attachment to.
        connectToGUIDParameterName - name of the parameter that passed the connect to guid
        connectToType - type of the connect to element.
        isUpdate - is this an update request?
        forLineage - the query is to support lineage retrieval
        forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
        suppliedSupportedZones - supported zone list from calling service
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        anchor entity or null. The anchor entity is used by the caller to set the LatestChange classification
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem adding the asset properties to the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • validateAnchorEntity

        public EntityDetail validateAnchorEntity​(String userId,
                                                 String connectToGUID,
                                                 String connectToType,
                                                 EntityDetail connectToEntity,
                                                 String connectToGUIDParameterName,
                                                 boolean isUpdate,
                                                 boolean forLineage,
                                                 boolean forDuplicateProcessing,
                                                 List<String> suppliedSupportedZones,
                                                 Date effectiveTime,
                                                 String methodName)
                                          throws InvalidParameterException,
                                                 PropertyServerException,
                                                 UserNotAuthorizedException
        Validates whether an operation is valid based on the type of entity it is connecting to, who the user is and whether it is a read or an update. The first part of this method is looking to see if the connectToEntity is an anchor entity. In which case it calls any specific validation for that entity and returns the connectToEntity, assuming all is ok - exceptions are thrown if the entity is not valid or the user does not have access to it. If the connectToEntity is of a type that has a lifecycle that is linked to the lifecycle of another entity - typically a referenceable - then that other entity is its anchor (examples are schema elements, comments, connections). The anchor entity needs to be retrieved and validated. Some anchor entities have specific validation to perform.
        Parameters:
        userId - userId of user making request.
        connectToGUID - unique id for the object to connect the attachment to
        connectToType - name of type of connectToEntity
        connectToEntity - entity retrieved from the repository
        connectToGUIDParameterName - name of the parameter that passed the connect to guid
        isUpdate - is this an update request?
        forLineage - the query is to support lineage retrieval
        forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
        suppliedSupportedZones - list of supported zones from the caller.
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        anchor entity or null if this entity is an anchor or does not have an anchor. The anchor entity is used by the caller to set the LatestChange classification
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem accessing the properties in the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • validateUniqueProperty

        public void validateUniqueProperty​(String entityGUID,
                                           String entityTypeGUID,
                                           String entityTypeName,
                                           String uniqueParameterValue,
                                           String uniqueParameterName,
                                           Date effectiveTime,
                                           String methodName)
                                    throws InvalidParameterException,
                                           PropertyServerException,
                                           UserNotAuthorizedException
        Validates that the unique property is not already in use.
        Parameters:
        entityGUID - existing entity (or null if this is a create)
        entityTypeGUID - the unique identifier of type of the entity
        entityTypeName - the unique name of the type of the entity
        uniqueParameterValue - the value of the unique parameter
        uniqueParameterName - the name of the unique parameter
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method for exceptions and error messages
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem accessing the properties in the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • addAnchorsClassification

        public void addAnchorsClassification​(String userId,
                                             String beanGUID,
                                             String beanGUIDParameterName,
                                             String beanGUIDTypeName,
                                             String anchorGUID,
                                             boolean forLineage,
                                             boolean forDuplicateProcessing,
                                             Date effectiveTime,
                                             String methodName)
                                      throws InvalidParameterException,
                                             UserNotAuthorizedException,
                                             PropertyServerException
        Classify an element with the anchors classification.
        Parameters:
        userId - calling user
        beanGUID - unique identifier of bean
        beanGUIDParameterName - anchorGUID of parameter supplying the beanGUID
        beanGUIDTypeName - type of bean
        anchorGUID - unique identifier of the anchor
        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
        Throws:
        InvalidParameterException - asset or element not known, null userId or guid
        PropertyServerException - problem accessing property server
        UserNotAuthorizedException - security access problem
      • maintainSupplementaryProperties

        public void maintainSupplementaryProperties​(String userId,
                                                    String elementGUID,
                                                    String elementQualifiedName,
                                                    String displayName,
                                                    String summary,
                                                    String description,
                                                    String abbreviation,
                                                    String usage,
                                                    boolean isMergeUpdate,
                                                    String methodName)
                                             throws InvalidParameterException,
                                                    UserNotAuthorizedException,
                                                    PropertyServerException
        Maintain the supplementary properties of a technical metadata element in a glossary term linked to the supplied element. The glossary term needs to be connected to a glossary which may need to be created. There is no use of effective time on these elements because they are effective all of the time that the asset is effective
        Parameters:
        userId - calling user
        elementGUID - element for the
        elementQualifiedName - qualified name of the linked element
        displayName - display name for the term
        summary - short description
        description - description of the term
        abbreviation - abbreviation used for the term
        usage - illustrations of how the term is used
        isMergeUpdate - should the new properties be merged with the existing properties or completely replace them?
        methodName - calling method
        Throws:
        InvalidParameterException - the parameters are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem detected in the repository services
      • countAttachments

        public int countAttachments​(String userId,
                                    String elementGUID,
                                    String elementTypeName,
                                    String attachmentTypeGUID,
                                    String attachmentTypeName,
                                    Date effectiveTime,
                                    String methodName)
                             throws InvalidParameterException,
                                    PropertyServerException,
                                    UserNotAuthorizedException
        Count up the number of elements of a certain type that are attached to a specific entity.
        Parameters:
        userId - calling user
        elementGUID - unique identifier for the entity that the object is attached to (anchor entity)
        elementTypeName - type of the anchor entity
        attachmentTypeGUID - unique identifier of the attachment relationship's type
        attachmentTypeName - unique name of the attachment's type
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        count of attached objects that are effective now
        Throws:
        InvalidParameterException - the parameters are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAttachedEntity

        public EntityDetail getAttachedEntity​(String userId,
                                              String startingElementGUID,
                                              String startingElementGUIDParameterName,
                                              String startingElementTypeName,
                                              String relationshipTypeGUID,
                                              String relationshipTypeName,
                                              String resultingElementTypeName,
                                              boolean forLineage,
                                              boolean forDuplicateProcessing,
                                              Date effectiveTime,
                                              String methodName)
                                       throws InvalidParameterException,
                                              PropertyServerException,
                                              UserNotAuthorizedException
        Return the entity for the required relationship attached to a specific entity. This method assumes the starting entity has a validated anchor
        Parameters:
        userId - calling user
        startingElementGUID - identifier for the entity that the identifier is attached to
        startingElementGUIDParameterName - name of the parameter used to pass the guid
        startingElementTypeName - type name for anchor
        relationshipTypeGUID - unique identifier of the attachment's relationship type
        relationshipTypeName - unique name of the attachment's relationship type
        resultingElementTypeName - unique name of the attached entity's type
        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:
        list of retrieved objects or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAttachedEntity

        public EntityDetail getAttachedEntity​(String userId,
                                              String startingElementGUID,
                                              String startingElementGUIDParameterName,
                                              String startingElementTypeName,
                                              String relationshipTypeGUID,
                                              String relationshipTypeName,
                                              String resultingElementTypeName,
                                              boolean forLineage,
                                              boolean forDuplicateProcessing,
                                              List<String> serviceSupportedZones,
                                              Date effectiveTime,
                                              String methodName)
                                       throws InvalidParameterException,
                                              PropertyServerException,
                                              UserNotAuthorizedException
        Return the entity for the required relationship attached to a specific entity. This method assumes the starting entity has a validated anchor
        Parameters:
        userId - calling user
        startingElementGUID - identifier for the entity that the identifier is attached to
        startingElementGUIDParameterName - name of the parameter used to pass the guid
        startingElementTypeName - type name for anchor
        relationshipTypeGUID - unique identifier of the attachment's relationship type
        relationshipTypeName - unique name of the attachment's relationship type
        resultingElementTypeName - unique name of the attached entity's type
        forLineage - is this part of a lineage request?
        forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
        serviceSupportedZones - supported zones for calling service
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of retrieved objects or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAttachedEntity

        public EntityDetail getAttachedEntity​(String userId,
                                              String startingElementGUID,
                                              String startingElementGUIDParameterName,
                                              String startingElementTypeName,
                                              String relationshipTypeGUID,
                                              String relationshipTypeName,
                                              String resultingElementTypeName,
                                              int attachmentEntityEnd,
                                              boolean forLineage,
                                              boolean forDuplicateProcessing,
                                              List<String> serviceSupportedZones,
                                              Date effectiveTime,
                                              String methodName)
                                       throws InvalidParameterException,
                                              PropertyServerException,
                                              UserNotAuthorizedException
        Return the entity for the required relationship attached to a specific entity. This method assumes the starting entity has a validated anchor
        Parameters:
        userId - calling user
        startingElementGUID - identifier for the entity that the identifier is attached to
        startingElementGUIDParameterName - name of the parameter used to pass the guid
        startingElementTypeName - type name for anchor
        relationshipTypeGUID - unique identifier of the attachment's relationship type
        relationshipTypeName - unique name of the attachment's relationship type
        resultingElementTypeName - unique name of the attached entity's type
        attachmentEntityEnd - which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2
        forLineage - is this part of a lineage request?
        forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
        serviceSupportedZones - supported zones for calling service
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of retrieved objects or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAttachedEntityFromUser

        public EntityDetail getAttachedEntityFromUser​(String userId,
                                                      String startingEntityGUID,
                                                      String startingEntityTypeName,
                                                      String relationshipTypeGUID,
                                                      String relationshipTypeName,
                                                      String attachedEntityTypeGUID,
                                                      String attachedEntityTypeName,
                                                      Date effectiveTime,
                                                      String methodName)
                                               throws InvalidParameterException,
                                                      UserNotAuthorizedException,
                                                      PropertyServerException
        Return the list of entities at the other end of the requested relationship type that were created or edited by the requesting user.
        Parameters:
        userId - user making the request
        startingEntityGUID - starting entity's GUID
        startingEntityTypeName - starting entity's type name
        relationshipTypeGUID - identifier for the relationship to follow
        relationshipTypeName - type name for the relationship to follow
        attachedEntityTypeGUID - identifier for the relationship to follow
        attachedEntityTypeName - type name for the relationship to follow
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - name of calling method
        Returns:
        retrieved entities or null
        Throws:
        InvalidParameterException - the entity at the other end is not of the expected type
        PropertyServerException - problem accessing the property server
        UserNotAuthorizedException - security access problem
      • getAttachedEntitiesFromUser

        public List<EntityDetail> getAttachedEntitiesFromUser​(String userId,
                                                              String startingEntityGUID,
                                                              String startingEntityTypeName,
                                                              String relationshipTypeGUID,
                                                              String relationshipTypeName,
                                                              String attachedEntityTypeGUID,
                                                              String attachedEntityTypeName,
                                                              String sequencingPropertyName,
                                                              int startingFrom,
                                                              int pageSize,
                                                              Date effectiveTime,
                                                              String methodName)
                                                       throws InvalidParameterException,
                                                              UserNotAuthorizedException,
                                                              PropertyServerException
        Return the list of entities at the other end of the requested relationship type that were created or edited by the requesting user.
        Parameters:
        userId - user making the request
        startingEntityGUID - starting entity's GUID
        startingEntityTypeName - starting entity's type name
        relationshipTypeGUID - identifier for the relationship to follow
        relationshipTypeName - type name for the relationship to follow
        attachedEntityTypeGUID - identifier for the relationship to follow
        attachedEntityTypeName - type name for the relationship to follow
        sequencingPropertyName - name of property used to sequence the results - needed for paging
        startingFrom - initial position in the stored list
        pageSize - maximum number of definitions to return on this call.
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - name of calling method
        Returns:
        retrieved entities or null
        Throws:
        PropertyServerException - problem accessing the property server
        UserNotAuthorizedException - security access problem
        InvalidParameterException - one of the parameters is in error
      • getAttachedEntities

        public List<EntityDetail> getAttachedEntities​(String userId,
                                                      String startingElementGUID,
                                                      String startingElementGUIDParameterName,
                                                      String startingElementTypeName,
                                                      String relationshipTypeGUID,
                                                      String relationshipTypeName,
                                                      String resultingElementTypeName,
                                                      int startingFrom,
                                                      int pageSize,
                                                      String methodName)
                                               throws InvalidParameterException,
                                                      PropertyServerException,
                                                      UserNotAuthorizedException
        Return the entities for the required relationships attached to a specific entity.
        Parameters:
        userId - calling user
        startingElementGUID - identifier for the entity that the identifier is attached to
        startingElementGUIDParameterName - name of the parameter used to pass the guid
        startingElementTypeName - type name for anchor
        relationshipTypeGUID - unique identifier of the attachment's relationship type
        relationshipTypeName - unique name of the attachment's relationship type
        resultingElementTypeName - unique name of the attached entity's type
        startingFrom - start position for results
        pageSize - maximum number of results
        methodName - calling method
        Returns:
        list of retrieved objects or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAttachedEntities

        public List<EntityDetail> getAttachedEntities​(String userId,
                                                      String startingElementGUID,
                                                      String startingElementGUIDParameterName,
                                                      String startingElementTypeName,
                                                      String relationshipTypeGUID,
                                                      String relationshipTypeName,
                                                      String resultingElementTypeName,
                                                      String requiredClassificationName,
                                                      String omittedClassificationName,
                                                      int attachmentEntityEnd,
                                                      boolean forLineage,
                                                      boolean forDuplicateProcessing,
                                                      List<String> serviceSupportedZones,
                                                      int startingFrom,
                                                      int pageSize,
                                                      Date effectiveTime,
                                                      String methodName)
                                               throws InvalidParameterException,
                                                      PropertyServerException,
                                                      UserNotAuthorizedException
        Return the entities for the required relationships attached to a specific entity.
        Parameters:
        userId - calling user
        startingElementGUID - identifier for the entity that the identifier is attached to
        startingElementGUIDParameterName - name of the parameter used to pass the guid
        startingElementTypeName - type name for anchor
        relationshipTypeGUID - unique identifier of the attachment's relationship type
        relationshipTypeName - unique name of the attachment's relationship type
        resultingElementTypeName - unique name of the attached entity's type
        requiredClassificationName - name of a classification that must be on the entity for a match
        omittedClassificationName - name of a classification that must NOT be on the entity for a match
        attachmentEntityEnd - which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2
        forLineage - is this part of a lineage request?
        forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
        serviceSupportedZones - supported zones for calling service
        startingFrom - start position for results
        pageSize - maximum number of results
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of retrieved objects or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getUniqueAttachmentLink

        public Relationship getUniqueAttachmentLink​(String userId,
                                                    String startingGUID,
                                                    String startingGUIDParameterName,
                                                    String startingTypeName,
                                                    String attachmentRelationshipTypeGUID,
                                                    String attachmentRelationshipTypeName,
                                                    String attachmentEntityGUID,
                                                    String attachmentEntityTypeName,
                                                    Date effectiveTime,
                                                    String methodName)
                                             throws InvalidParameterException,
                                                    PropertyServerException,
                                                    UserNotAuthorizedException
        Return the relationship between the requested elements - there should be only one. Note that the entities are not checked.
        Parameters:
        userId - calling user
        startingGUID - identifier for the entity that the identifier is attached to
        startingGUIDParameterName - name of the parameter used to pass the guid
        startingTypeName - type name for anchor
        attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
        attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
        attachmentEntityGUID - unique identifier of the entity on the other end or null if unknown
        attachmentEntityTypeName - unique name of the attached entity's type
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of retrieved relationships or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getUniqueAttachmentLink

        public Relationship getUniqueAttachmentLink​(String userId,
                                                    String startingGUID,
                                                    String startingGUIDParameterName,
                                                    String startingTypeName,
                                                    String attachmentRelationshipTypeGUID,
                                                    String attachmentRelationshipTypeName,
                                                    String attachmentEntityGUID,
                                                    String attachmentEntityTypeName,
                                                    int attachmentEntityEnd,
                                                    boolean forDuplicateProcessing,
                                                    Date effectiveTime,
                                                    String methodName)
                                             throws InvalidParameterException,
                                                    PropertyServerException,
                                                    UserNotAuthorizedException
        Return the relationship between the requested elements - there should be only one. Note that the entities are not checked.
        Parameters:
        userId - calling user
        startingGUID - identifier for the entity that the identifier is attached to
        startingGUIDParameterName - name of the parameter used to pass the guid
        startingTypeName - type name for anchor
        attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
        attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
        attachmentEntityGUID - unique identifier of the entity on the other end or null if unknown
        attachmentEntityTypeName - unique name of the attached entity's type
        attachmentEntityEnd - which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2
        forDuplicateProcessing - is this processing part of duplicate processing?
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of retrieved relationships or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAllAttachmentLinks

        public List<Relationship> getAllAttachmentLinks​(String userId,
                                                        String startingGUID,
                                                        String startingGUIDParameterName,
                                                        String startingTypeName,
                                                        boolean forDuplicateProcessing,
                                                        Date effectiveTime,
                                                        String methodName)
                                                 throws InvalidParameterException,
                                                        PropertyServerException,
                                                        UserNotAuthorizedException
        Return all relationships attached to a specific entity.
        Parameters:
        userId - calling user
        startingGUID - identifier for the entity that the identifier is attached to
        startingGUIDParameterName - name of the parameter used to pass the guid
        startingTypeName - type name for anchor
        forDuplicateProcessing - is this processing part of duplicate processing?
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of retrieved relationships or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAttachmentLinks

        public List<Relationship> getAttachmentLinks​(String userId,
                                                     String startingGUID,
                                                     String startingGUIDParameterName,
                                                     String startingTypeName,
                                                     String attachmentRelationshipTypeGUID,
                                                     String attachmentRelationshipTypeName,
                                                     String attachmentEntityTypeName,
                                                     int startingFrom,
                                                     int pageSize,
                                                     Date effectiveTime,
                                                     String methodName)
                                              throws InvalidParameterException,
                                                     PropertyServerException,
                                                     UserNotAuthorizedException
        Return the relationships to required elements attached to a specific entity. Note that the entities are not checked.
        Parameters:
        userId - calling user
        startingGUID - identifier for the entity that the identifier is attached to
        startingGUIDParameterName - name of the parameter used to pass the guid
        startingTypeName - type name for anchor
        attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
        attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
        attachmentEntityTypeName - unique name of the attached entity's type
        startingFrom - start position for results
        pageSize - maximum number of results
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of retrieved relationships or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAttachmentLinks

        public List<Relationship> getAttachmentLinks​(String userId,
                                                     String startingGUID,
                                                     String startingGUIDParameterName,
                                                     String startingTypeName,
                                                     String attachmentRelationshipTypeGUID,
                                                     String attachmentRelationshipTypeName,
                                                     String attachmentEntityGUID,
                                                     String attachmentEntityTypeName,
                                                     int startingFrom,
                                                     int pageSize,
                                                     Date effectiveTime,
                                                     String methodName)
                                              throws InvalidParameterException,
                                                     PropertyServerException,
                                                     UserNotAuthorizedException
        Return the relationships to required elements attached to a specific entity. Note that the entities are not checked.
        Parameters:
        userId - calling user
        startingGUID - identifier for the entity that the identifier is attached to
        startingGUIDParameterName - name of the parameter used to pass the guid
        startingTypeName - type name for anchor
        attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
        attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
        attachmentEntityGUID - unique identifier of the entity on the other end or null if unknown
        attachmentEntityTypeName - unique name of the attached entity's type
        startingFrom - start position for results
        pageSize - maximum number of results
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of retrieved relationships or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAttachmentLinks

        public List<Relationship> getAttachmentLinks​(String userId,
                                                     String startingGUID,
                                                     String startingGUIDParameterName,
                                                     String startingTypeName,
                                                     String attachmentRelationshipTypeGUID,
                                                     String attachmentRelationshipTypeName,
                                                     String attachmentEntityGUID,
                                                     String attachmentEntityTypeName,
                                                     int attachmentEntityEnd,
                                                     boolean forDuplicateProcessing,
                                                     int startingFrom,
                                                     int pageSize,
                                                     Date effectiveTime,
                                                     String methodName)
                                              throws InvalidParameterException,
                                                     PropertyServerException,
                                                     UserNotAuthorizedException
        Return the relationships to required elements attached to a specific entity. Note that the entities are not checked.
        Parameters:
        userId - calling user
        startingGUID - identifier for the entity that the identifier is attached to
        startingGUIDParameterName - name of the parameter used to pass the guid
        startingTypeName - type name for anchor
        attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
        attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
        attachmentEntityGUID - unique identifier of the entity on the other end or null if unknown
        attachmentEntityTypeName - unique name of the attached entity's type
        attachmentEntityEnd - which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2
        forDuplicateProcessing - is this processing part of duplicate processing?
        startingFrom - start position for results
        pageSize - maximum number of results
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of retrieved relationships or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • findAttachmentLinks

        public List<Relationship> findAttachmentLinks​(String userId,
                                                      String relationshipTypeName,
                                                      SearchProperties searchProperties,
                                                      List<InstanceStatus> limitResultsByStatus,
                                                      Date asOfTime,
                                                      String sequencingProperty,
                                                      SequencingOrder sequencingOrder,
                                                      boolean forLineage,
                                                      boolean forDuplicateProcessing,
                                                      int startingFrom,
                                                      int pageSize,
                                                      Date effectiveTime,
                                                      String methodName)
                                               throws InvalidParameterException,
                                                      UserNotAuthorizedException,
                                                      PropertyServerException
        Return a list of relationships that match the supplied criteria. The results can be returned over many pages. Note: the visibility of the relationship and both entities is checked before returning a relationship to the caller.
        Parameters:
        userId - caller's userId
        relationshipTypeName - type of interest (null means any element type)
        searchProperties - Optional list of entity property conditions to match.
        limitResultsByStatus - By default, relationships in all statuses (other than DELETE) are returned. However, it is possible to specify a list of statuses (eg ACTIVE) to restrict the results. Null means all status values.
        asOfTime - Requests a historical query of the entity. Null means return the present values.
        sequencingProperty - String name of the property that is to be used to sequence the results. Null means do not sequence on a property name (see SequencingOrder).
        sequencingOrder - Enum defining how the results should be ordered.
        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
        startingFrom - paging start point
        pageSize - maximum results that can be returned
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        a list of elements matching the supplied criteria; null means no matching elements in the metadata store.
        Throws:
        InvalidParameterException - one of the search parameters is invalid
        UserNotAuthorizedException - the governance action service is not able to access the elements
        PropertyServerException - there is a problem accessing the metadata store
      • createBeanInRepository

        public String createBeanInRepository​(String userId,
                                             String externalSourceGUID,
                                             String externalSourceName,
                                             String entityTypeGUID,
                                             String entityTypeName,
                                             String uniqueParameterValue,
                                             String uniqueParameterName,
                                             OpenMetadataAPIGenericBuilder propertyBuilder,
                                             String methodName)
                                      throws InvalidParameterException,
                                             PropertyServerException,
                                             UserNotAuthorizedException
        Create a new entity in the repository assuming all parameters are ok.
        Parameters:
        userId - userId of user making request.
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        entityTypeGUID - unique identifier of the type of entity to create
        entityTypeName - unique name of the type of entity to create
        uniqueParameterValue - value of unique parameter (or null if no unique properties)
        uniqueParameterName - name of unique parameter (or null if no unique properties)
        propertyBuilder - builder pre-populated with the properties and classifications of the new entity
        methodName - calling method
        Returns:
        unique identifier of new entity
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem adding the properties to the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • createBeanFromTemplate

        public String createBeanFromTemplate​(String userId,
                                             String externalSourceGUID,
                                             String externalSourceName,
                                             String templateGUID,
                                             String templateGUIDParameterName,
                                             String entityTypeGUID,
                                             String entityTypeName,
                                             String uniqueParameterValue,
                                             String uniqueParameterName,
                                             OpenMetadataAPIGenericBuilder propertyBuilder,
                                             String methodName)
                                      throws InvalidParameterException,
                                             PropertyServerException,
                                             UserNotAuthorizedException
        Create a new entity in the repository based on the contents of an existing entity (the template). The supplied builder is pre-loaded with properties that should override the properties from the the template. This is the method to call from the specific handlers.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        templateGUID - unique identifier of existing entity to use
        templateGUIDParameterName - name of parameter passing the templateGUID
        entityTypeGUID - unique identifier of the type for the entity
        entityTypeName - unique name of the type for the entity
        uniqueParameterValue - the value of a unique property (eg qualifiedName) in the new entity - this is used to create unique names in the attachments.
        uniqueParameterName - name of the property where the unique value is stored.
        propertyBuilder - this property builder has the new properties supplied by the caller. They will be augmented by the template properties and classification.
        methodName - calling method
        Returns:
        unique identifier of the the new bean
        Throws:
        InvalidParameterException - one of the parameters is invalid
        PropertyServerException - there is a problem in the repository services
        UserNotAuthorizedException - the user is not authorized to access one of the elements.
      • updateBeanPropertyInRepository

        public void updateBeanPropertyInRepository​(String userId,
                                                   String externalSourceGUID,
                                                   String externalSourceName,
                                                   String entityGUID,
                                                   String entityGUIDParameterName,
                                                   String entityTypeGUID,
                                                   String entityTypeName,
                                                   String propertyName,
                                                   String propertyValue,
                                                   boolean forLineage,
                                                   boolean forDuplicateProcessing,
                                                   Date effectiveTime,
                                                   String methodName)
                                            throws InvalidParameterException,
                                                   PropertyServerException,
                                                   UserNotAuthorizedException
        Update one or more properties in the requested entity.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        entityGUID - unique identifier of object to update
        entityGUIDParameterName - name of parameter supplying the GUID
        entityTypeGUID - unique identifier of the entity's type
        entityTypeName - unique name of the entity's type
        propertyName - name of bean property to update
        propertyValue - new value for bean property
        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
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem updating the properties tin the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • updateBeanInRepository

        public void updateBeanInRepository​(String userId,
                                           String externalSourceGUID,
                                           String externalSourceName,
                                           String entityGUID,
                                           String entityGUIDParameterName,
                                           String entityTypeGUID,
                                           String entityTypeName,
                                           InstanceProperties properties,
                                           boolean isMergeUpdate,
                                           String methodName)
                                    throws InvalidParameterException,
                                           PropertyServerException,
                                           UserNotAuthorizedException
        Update one or more properties in the requested entity.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        entityGUID - unique identifier of object to update
        entityGUIDParameterName - name of parameter supplying the GUID
        entityTypeGUID - unique identifier of the entity's type
        entityTypeName - unique name of the entity's type
        properties - object containing the properties for the repository instances based on the properties of the bean
        isMergeUpdate - should the supplied properties be merged with existing properties (true) only replacing the properties with matching names, or should the entire properties of the instance be replaced?
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem updating the properties in the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • updateBeanInRepository

        public void updateBeanInRepository​(String userId,
                                           String externalSourceGUID,
                                           String externalSourceName,
                                           String entityGUID,
                                           String entityGUIDParameterName,
                                           String entityTypeGUID,
                                           String entityTypeName,
                                           boolean forLineage,
                                           boolean forDuplicateProcessing,
                                           InstanceProperties updateProperties,
                                           boolean isMergeUpdate,
                                           Date effectiveTime,
                                           String methodName)
                                    throws InvalidParameterException,
                                           PropertyServerException,
                                           UserNotAuthorizedException
        Update one or more updateProperties in the requested entity.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        entityGUID - unique identifier of object to update
        entityGUIDParameterName - name of parameter supplying the GUID
        entityTypeGUID - unique identifier of the entity's type
        entityTypeName - unique name of the entity's type
        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
        updateProperties - object containing the properties
        isMergeUpdate - should the supplied properties be merged with existing properties (true) by replacing the just the properties with matching names, or should the entire properties of the instance be replaced?
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem adding the new properties to the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • updateBeanInRepository

        public void updateBeanInRepository​(String userId,
                                           String externalSourceGUID,
                                           String externalSourceName,
                                           String entityGUID,
                                           String entityGUIDParameterName,
                                           String entityTypeGUID,
                                           String entityTypeName,
                                           boolean forLineage,
                                           boolean forDuplicateProcessing,
                                           List<String> serviceSupportedZones,
                                           InstanceProperties updateProperties,
                                           boolean isMergeUpdate,
                                           Date effectiveTime,
                                           String methodName)
                                    throws InvalidParameterException,
                                           PropertyServerException,
                                           UserNotAuthorizedException
        Update one or more updateProperties in the requested entity.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        entityGUID - unique identifier of object to update
        entityGUIDParameterName - name of parameter supplying the GUID
        entityTypeGUID - unique identifier of the entity's type
        entityTypeName - unique name of the entity's type
        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
        serviceSupportedZones - supported zones for calling service
        updateProperties - object containing the properties
        isMergeUpdate - should the supplied properties be merged with existing properties (true) by replacing the just the properties with matching names, or should the entire properties of the instance be replaced?
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem adding the new properties to the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • updateBeanStatusInRepository

        public void updateBeanStatusInRepository​(String userId,
                                                 String externalSourceGUID,
                                                 String externalSourceName,
                                                 String entityGUID,
                                                 String entityGUIDParameterName,
                                                 String entityTypeGUID,
                                                 String entityTypeName,
                                                 InstanceStatus newStatus,
                                                 String newStatusParameterName,
                                                 String methodName)
                                          throws InvalidParameterException,
                                                 PropertyServerException,
                                                 UserNotAuthorizedException
        Update the instance status in the requested entity.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        entityGUID - unique identifier of object to update
        entityGUIDParameterName - name of parameter supplying the GUID
        entityTypeGUID - unique identifier of the entity's type
        entityTypeName - unique name of the entity's type
        newStatus - new status value
        newStatusParameterName - parameter providing the new status value
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem adding the new properties to the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • updateBeanStatusInRepository

        public void updateBeanStatusInRepository​(String userId,
                                                 String externalSourceGUID,
                                                 String externalSourceName,
                                                 String entityGUID,
                                                 String entityGUIDParameterName,
                                                 String entityTypeGUID,
                                                 String entityTypeName,
                                                 boolean forLineage,
                                                 boolean forDuplicateProcessing,
                                                 InstanceStatus newStatus,
                                                 String newStatusParameterName,
                                                 Date effectiveTime,
                                                 String methodName)
                                          throws InvalidParameterException,
                                                 PropertyServerException,
                                                 UserNotAuthorizedException
        Update the instance status in the requested entity.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        entityGUID - unique identifier of object to update
        entityGUIDParameterName - name of parameter supplying the GUID
        entityTypeGUID - unique identifier of the entity's type
        entityTypeName - unique name of the entity's type
        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
        newStatus - new status value
        newStatusParameterName - parameter providing the new status value
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem adding the new properties to the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • updateBeanStatusInRepository

        public void updateBeanStatusInRepository​(String userId,
                                                 String externalSourceGUID,
                                                 String externalSourceName,
                                                 String entityGUID,
                                                 String entityGUIDParameterName,
                                                 String entityTypeGUID,
                                                 String entityTypeName,
                                                 boolean forLineage,
                                                 boolean forDuplicateProcessing,
                                                 List<String> serviceSupportedZones,
                                                 InstanceStatus newStatus,
                                                 String newStatusParameterName,
                                                 Date effectiveTime,
                                                 String methodName)
                                          throws InvalidParameterException,
                                                 PropertyServerException,
                                                 UserNotAuthorizedException
        Update the instance status in the requested entity.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        entityGUID - unique identifier of object to update
        entityGUIDParameterName - name of parameter supplying the GUID
        entityTypeGUID - unique identifier of the entity's type
        entityTypeName - unique name of the entity's type
        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
        serviceSupportedZones - supported zones for calling service
        newStatus - new status value
        newStatusParameterName - parameter providing the new status value
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem adding the new properties to the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • archiveBeanInRepository

        public void archiveBeanInRepository​(String userId,
                                            String externalSourceGUID,
                                            String externalSourceName,
                                            String entityGUID,
                                            String entityGUIDParameterName,
                                            String entityTypeName,
                                            InstanceProperties classificationProperties,
                                            boolean forLineage,
                                            boolean forDuplicateProcessing,
                                            Date effectiveTime,
                                            String methodName)
                                     throws InvalidParameterException,
                                            PropertyServerException,
                                            UserNotAuthorizedException
        Classify an entity in the repository to show that its asset/artifact counterpart in the real world has either been deleted or archived.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        entityGUID - unique identifier of object to update
        entityGUIDParameterName - name of parameter supplying the GUID
        entityTypeName - unique name of the entity's type
        classificationProperties - properties for the classification
        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
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem removing the properties from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • archiveBeanInRepository

        public void archiveBeanInRepository​(String userId,
                                            String externalSourceGUID,
                                            String externalSourceName,
                                            String entityGUID,
                                            String entityGUIDParameterName,
                                            String entityTypeName,
                                            InstanceProperties classificationProperties,
                                            boolean forLineage,
                                            boolean forDuplicateProcessing,
                                            List<String> serviceSupportedZones,
                                            Date effectiveTime,
                                            String methodName)
                                     throws InvalidParameterException,
                                            PropertyServerException,
                                            UserNotAuthorizedException
        Classify an entity in the repository to show that its asset/artifact counterpart in the real world has either been deleted or archived. Note, this method is designed to work only on anchor entities or entities with no anchor.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        entityGUID - unique identifier of object to update
        entityGUIDParameterName - name of parameter supplying the GUID
        entityTypeName - unique name of the entity's type
        classificationProperties - properties for the classification
        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
        serviceSupportedZones - supported zones for calling service
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem removing the properties from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • deleteAnchoredEntity

        public void deleteAnchoredEntity​(List<String> anchoredEntityGUIDs,
                                         EntityProxy potentialAnchoredEntity,
                                         boolean forLineage,
                                         boolean forDuplicateProcessing,
                                         Date effectiveTime,
                                         String methodName)
                                  throws InvalidParameterException,
                                         PropertyServerException,
                                         UserNotAuthorizedException
        Remove an entity if it is anchored to the anchor entity
        Parameters:
        anchoredEntityGUIDs - entity anchors to match against
        potentialAnchoredEntity - entity to validate
        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
        Throws:
        InvalidParameterException - problem with the parameters
        PropertyServerException - problem in the repository services
        UserNotAuthorizedException - calling user is not authorize to issue this request
      • deleteBeanInRepository

        public void deleteBeanInRepository​(String userId,
                                           String externalSourceGUID,
                                           String externalSourceName,
                                           String entityGUID,
                                           String entityGUIDParameterName,
                                           String entityTypeGUID,
                                           String entityTypeName,
                                           String validatingPropertyName,
                                           String validatingPropertyValue,
                                           String methodName)
                                    throws InvalidParameterException,
                                           PropertyServerException,
                                           UserNotAuthorizedException
        Delete an entity from the repository.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        entityGUID - unique identifier of object to update
        entityGUIDParameterName - name of parameter supplying the GUID
        entityTypeGUID - unique identifier of the entity's type
        entityTypeName - unique name of the entity's type
        validatingPropertyName - name of property to verify - of null if no verification is required
        validatingPropertyValue - value of property to verify
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem removing the properties from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • deleteBeanInRepository

        public void deleteBeanInRepository​(String userId,
                                           String externalSourceGUID,
                                           String externalSourceName,
                                           String entityGUID,
                                           String entityGUIDParameterName,
                                           String entityTypeGUID,
                                           String entityTypeName,
                                           String validatingPropertyName,
                                           String validatingPropertyValue,
                                           boolean forLineage,
                                           boolean forDuplicateProcessing,
                                           Date effectiveTime,
                                           String methodName)
                                    throws InvalidParameterException,
                                           PropertyServerException,
                                           UserNotAuthorizedException
        Delete an entity from the repository.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        entityGUID - unique identifier of object to update
        entityGUIDParameterName - name of parameter supplying the GUID
        entityTypeGUID - unique identifier of the entity's type
        entityTypeName - unique name of the entity's type
        validatingPropertyName - name of property to verify - or null if no verification is required
        validatingPropertyValue - value of property to verify
        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
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem removing the properties from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • deleteBeanInRepository

        public void deleteBeanInRepository​(String userId,
                                           String externalSourceGUID,
                                           String externalSourceName,
                                           String entityGUID,
                                           String entityGUIDParameterName,
                                           String entityTypeGUID,
                                           String entityTypeName,
                                           String validatingPropertyName,
                                           String validatingPropertyValue,
                                           boolean forLineage,
                                           boolean forDuplicateProcessing,
                                           List<String> serviceSupportedZones,
                                           Date effectiveTime,
                                           String methodName)
                                    throws InvalidParameterException,
                                           PropertyServerException,
                                           UserNotAuthorizedException
        Delete an entity from the repository.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        entityGUID - unique identifier of object to update
        entityGUIDParameterName - name of parameter supplying the GUID
        entityTypeGUID - unique identifier of the entity's type
        entityTypeName - unique name of the entity's type
        validatingPropertyName - name of property to verify - or null if no verification is required
        validatingPropertyValue - value of property to verify
        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
        serviceSupportedZones - supported zones for calling service
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem removing the properties from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • deleteBeanInRepository

        public void deleteBeanInRepository​(String userId,
                                           String externalSourceGUID,
                                           String externalSourceName,
                                           String entityGUID,
                                           String entityGUIDParameterName,
                                           String entityTypeGUID,
                                           String entityTypeName,
                                           String validatingPropertyName,
                                           String validatingPropertyValue,
                                           List<String> anchorEntityGUIDs,
                                           boolean forLineage,
                                           boolean forDuplicateProcessing,
                                           Date effectiveTime,
                                           String methodName)
                                    throws InvalidParameterException,
                                           PropertyServerException,
                                           UserNotAuthorizedException
        Delete an entity from the repository.
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        entityGUID - unique identifier of object to update
        entityGUIDParameterName - name of parameter supplying the GUID
        entityTypeGUID - unique identifier of the entity's type
        entityTypeName - unique name of the entity's type
        validatingPropertyName - name of property to verify - null if no verification is required
        validatingPropertyValue - value of property to verify
        anchorEntityGUIDs - list of anchor entities for the bean (can be null)
        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
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem removing the properties from the repository.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getAttachedElementGUIDs

        public List<String> getAttachedElementGUIDs​(String userId,
                                                    String startingGUID,
                                                    String startingGUIDParameterName,
                                                    String startingTypeName,
                                                    String attachmentRelationshipTypeGUID,
                                                    String attachmentRelationshipTypeName,
                                                    String attachmentEntityTypeName,
                                                    boolean forLineage,
                                                    boolean forDuplicateProcessing,
                                                    int startingFrom,
                                                    int pageSize,
                                                    Date effectiveTime,
                                                    String methodName)
                                             throws InvalidParameterException,
                                                    PropertyServerException,
                                                    UserNotAuthorizedException
        Return the elements of the requested type attached to an entity identified by the starting GUID.
        Parameters:
        userId - calling user
        startingGUID - identifier for the entity that the identifier is attached to
        startingGUIDParameterName - name of parameter supplying the GUID
        startingTypeName - name of the type of object being attached to
        attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
        attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
        attachmentEntityTypeName - unique name of the attached entity's type
        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
        startingFrom - start position for results
        pageSize - maximum number of results
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of unique identifiers for retrieved objects or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAttachedElementGUIDs

        public List<String> getAttachedElementGUIDs​(String userId,
                                                    String startingGUID,
                                                    String startingGUIDParameterName,
                                                    String startingTypeName,
                                                    String attachmentRelationshipTypeGUID,
                                                    String attachmentRelationshipTypeName,
                                                    String attachmentEntityTypeName,
                                                    boolean forLineage,
                                                    boolean forDuplicateProcessing,
                                                    List<String> serviceSupportedZones,
                                                    int startingFrom,
                                                    int pageSize,
                                                    Date effectiveTime,
                                                    String methodName)
                                             throws InvalidParameterException,
                                                    PropertyServerException,
                                                    UserNotAuthorizedException
        Return the elements of the requested type attached to an entity identified by the starting GUID.
        Parameters:
        userId - calling user
        startingGUID - identifier for the entity that the identifier is attached to
        startingGUIDParameterName - name of parameter supplying the GUID
        startingTypeName - name of the type of object being attached to
        attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
        attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
        attachmentEntityTypeName - unique name of the attached entity's type
        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
        serviceSupportedZones - supported zones for calling service
        startingFrom - start position for results
        pageSize - maximum number of results
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of unique identifiers for retrieved objects or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAttachedElementGUID

        public String getAttachedElementGUID​(String userId,
                                             String startingGUID,
                                             String startingGUIDParameterName,
                                             String startingTypeName,
                                             String attachmentRelationshipTypeGUID,
                                             String attachmentRelationshipTypeName,
                                             String attachmentEntityTypeName,
                                             int selectionEnd,
                                             boolean forLineage,
                                             boolean forDuplicateProcessing,
                                             Date effectiveTime,
                                             String methodName)
                                      throws InvalidParameterException,
                                             PropertyServerException,
                                             UserNotAuthorizedException
        Return the elements of the requested type attached to an entity identified by the starting GUID.
        Parameters:
        userId - calling user
        startingGUID - identifier for the entity that the identifier is attached to
        startingGUIDParameterName - name of parameter supplying the GUID
        startingTypeName - name of the type of object being attached to
        attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
        attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
        attachmentEntityTypeName - unique name of the attached entity's type
        selectionEnd - 0 means either end, 1 means only take from end 1, 2 means only take from end 2
        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:
        list of unique identifiers for retrieved objects or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAttachedElementGUID

        public String getAttachedElementGUID​(String userId,
                                             String startingGUID,
                                             String startingGUIDParameterName,
                                             String startingTypeName,
                                             String attachmentRelationshipTypeGUID,
                                             String attachmentRelationshipTypeName,
                                             String attachmentEntityTypeName,
                                             int selectionEnd,
                                             boolean forLineage,
                                             boolean forDuplicateProcessing,
                                             List<String> serviceSupportedZones,
                                             Date effectiveTime,
                                             String methodName)
                                      throws InvalidParameterException,
                                             PropertyServerException,
                                             UserNotAuthorizedException
        Return the elements of the requested type attached to an entity identified by the starting GUID.
        Parameters:
        userId - calling user
        startingGUID - identifier for the entity that the identifier is attached to
        startingGUIDParameterName - name of parameter supplying the GUID
        startingTypeName - name of the type of object being attached to
        attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
        attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
        attachmentEntityTypeName - unique name of the attached entity's type
        selectionEnd - 0 means either end, 1 means only take from end 1, 2 means only take from end 2
        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
        serviceSupportedZones - supported zones for calling service
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of unique identifiers for retrieved objects or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAttachedElement

        public B getAttachedElement​(String userId,
                                    String startingElementGUID,
                                    String startingElementGUIDParameterName,
                                    String startingElementTypeName,
                                    String relationshipTypeGUID,
                                    String relationshipTypeName,
                                    String resultingElementTypeName,
                                    int attachmentEntityEnd,
                                    boolean forLineage,
                                    boolean forDuplicateProcessing,
                                    List<String> serviceSupportedZones,
                                    Date effectiveTime,
                                    String methodName)
                             throws InvalidParameterException,
                                    PropertyServerException,
                                    UserNotAuthorizedException
        Return the Bean for the required relationship attached to a specific element. This method assumes the starting element has a validated anchor.
        Parameters:
        userId - calling user
        startingElementGUID - identifier for the entity that the identifier is attached to
        startingElementGUIDParameterName - name of the parameter used to pass the guid
        startingElementTypeName - type name for anchor
        relationshipTypeGUID - unique identifier of the attachment's relationship type
        relationshipTypeName - unique name of the attachment's relationship type
        resultingElementTypeName - unique name of the attached entity's type
        attachmentEntityEnd - which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2
        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
        serviceSupportedZones - supported zones for calling service
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of retrieved objects or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAttachedElements

        public List<B> getAttachedElements​(String userId,
                                           String startingGUID,
                                           String startingGUIDParameterName,
                                           String startingTypeName,
                                           String attachmentRelationshipTypeGUID,
                                           String attachmentRelationshipTypeName,
                                           String attachmentEntityTypeName,
                                           int startingFrom,
                                           int pageSize,
                                           Date effectiveTime,
                                           String methodName)
                                    throws InvalidParameterException,
                                           PropertyServerException,
                                           UserNotAuthorizedException
        Return the elements of the requested type attached to an entity identified by the starting GUID.
        Parameters:
        userId - calling user
        startingGUID - identifier for the entity that the identifier is attached to
        startingGUIDParameterName - name of parameter supplying the GUID
        startingTypeName - name of the type of object being attached to
        attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
        attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
        attachmentEntityTypeName - unique name of the attached entity's type
        startingFrom - start position for results
        pageSize - maximum number of results
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of retrieved objects or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAttachedElements

        public List<B> getAttachedElements​(String userId,
                                           String startingGUID,
                                           String startingGUIDParameterName,
                                           String startingTypeName,
                                           String attachmentRelationshipTypeGUID,
                                           String attachmentRelationshipTypeName,
                                           String attachmentEntityTypeName,
                                           String requiredClassificationName,
                                           String omittedClassificationName,
                                           int selectionEnd,
                                           boolean forLineage,
                                           boolean forDuplicateProcessing,
                                           int startingFrom,
                                           int pageSize,
                                           Date effectiveTime,
                                           String methodName)
                                    throws InvalidParameterException,
                                           PropertyServerException,
                                           UserNotAuthorizedException
        Return the elements of the requested type attached to an entity identified by the starting GUID.
        Parameters:
        userId - calling user
        startingGUID - identifier for the entity that the identifier is attached to
        startingGUIDParameterName - name of parameter supplying the GUID
        startingTypeName - name of the type of object being attached to
        attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
        attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
        attachmentEntityTypeName - unique name of the attached entity's type
        requiredClassificationName - String the name of the classification that must be on the attached entity.
        omittedClassificationName - String the name of a classification that must not be on the attached entity.
        selectionEnd - 0 means either end, 1 means only take from end 1, 2 means only take from end 2
        forDuplicateProcessing - this request os for duplicate processing so do not deduplicate
        forLineage - this request is for lineage so ignore Memento classifications
        startingFrom - start position for results
        pageSize - maximum number of results
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of retrieved objects or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAttachedElements

        public List<B> getAttachedElements​(String userId,
                                           String anchorGUID,
                                           String anchorGUIDParameterName,
                                           String startingGUID,
                                           String startingGUIDParameterName,
                                           String startingTypeName,
                                           String attachmentRelationshipTypeGUID,
                                           String attachmentRelationshipTypeName,
                                           String attachmentEntityTypeName,
                                           String requiredClassificationName,
                                           String omittedClassificationName,
                                           int selectionEnd,
                                           boolean forLineage,
                                           boolean forDuplicateProcessing,
                                           List<String> serviceSupportedZones,
                                           int startingFrom,
                                           int pageSize,
                                           Date effectiveTime,
                                           String methodName)
                                    throws InvalidParameterException,
                                           PropertyServerException,
                                           UserNotAuthorizedException
        Return the elements of the requested type attached to an entity identified by the starting GUID.
        Parameters:
        userId - calling user
        anchorGUID - expected anchorGUID for this element
        anchorGUIDParameterName - parameter supplying anchorGUID
        startingGUID - identifier for the entity that the identifier is attached to
        startingGUIDParameterName - name of parameter supplying the GUID
        startingTypeName - name of the type of object being attached to
        attachmentRelationshipTypeGUID - unique identifier of the relationship type connect to the attachment
        attachmentRelationshipTypeName - unique name of the relationship type connect to the attachment
        attachmentEntityTypeName - unique name of the attached entity's type
        requiredClassificationName - String the name of the classification that must be on the attached entity.
        omittedClassificationName - String the name of a classification that must not be on the attached entity.
        selectionEnd - 0 means either end, 1 means only take from end 1, 2 means only take from end 2
        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
        serviceSupportedZones - supported zones for calling service
        startingFrom - start position for results
        pageSize - maximum number of results
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of retrieved objects or null if none found
        Throws:
        InvalidParameterException - the input properties are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAttachedFilteredEntities

        public List<EntityDetail> getAttachedFilteredEntities​(String userId,
                                                              String startingGUID,
                                                              String startingGUIDParameterName,
                                                              String startingTypeName,
                                                              String relationshipTypeName,
                                                              String relationshipTypeGUID,
                                                              int selectionEnd,
                                                              Set<String> specificMatchPropertyNames,
                                                              String searchCriteria,
                                                              int startFrom,
                                                              boolean startsWith,
                                                              boolean ignoreCase,
                                                              int queryPageSize,
                                                              String methodName)
                                                       throws InvalidParameterException,
                                                              PropertyServerException,
                                                              UserNotAuthorizedException
        Retrieve the entities that are attached to the entity with startingGUID. The entities are only returned if they match the supplied filtering. To be returned the attached entity needs to be directly attached to the entity with startingGUID:
        • with the relationship relationshipTypeName
        • the relationship relationshipTypeGUID
        • be at this end of the relationship.
        • it is visible to the calling user

        Optionally if specified, the attached entity needs to

        • match the searchCriteria taking into account the ignoreCase and startsWith flags against the text property fields named in specificMatchPropertyNames.
        Optionally if specified, the attached entity needs to
        • be in the requested page as specified by startFrom and queryPageSize
        Parameters:
        userId - calling user
        startingGUID - identifier for the entity that the identifier is attached to
        startingGUIDParameterName - name of parameter supplying the GUID
        startingTypeName - name of the type of object being attached to
        relationshipTypeName - name of the type of relationship attaching the attached entity
        relationshipTypeGUID - guid of the type of relationship attaching the attached entity
        selectionEnd - 0 means either end, 1 means only take from end 1, 2 means only take from end 2
        specificMatchPropertyNames - list of property names to
        searchCriteria - text to search on
        startFrom - index of the list to start from (0 for start)
        startsWith - if flag set search looking for matches starting with the supplied searchCriteria, otherwise an exact match
        ignoreCase - if set ignore case on the match, if not set then case must match
        queryPageSize - requested page size
        methodName - calling method
        Returns:
        List of attached entities
        Throws:
        InvalidParameterException - the parameters are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAttachedFilteredEntities

        public List<EntityDetail> getAttachedFilteredEntities​(String userId,
                                                              String startingGUID,
                                                              String startingGUIDParameterName,
                                                              String startingTypeName,
                                                              String relationshipTypeName,
                                                              String relationshipTypeGUID,
                                                              int selectionEnd,
                                                              Set<String> specificMatchPropertyNames,
                                                              String searchCriteria,
                                                              int startFrom,
                                                              boolean startsWith,
                                                              boolean ignoreCase,
                                                              int queryPageSize,
                                                              Date effectiveTime,
                                                              String methodName)
                                                       throws InvalidParameterException,
                                                              PropertyServerException,
                                                              UserNotAuthorizedException
        Retrieve the entities that are attached to the entity with startingGUID. The entities are only returned if they match the supplied filtering. To be returned the attached entity needs to be directly attached to the entity with startingGUID:
        • with the relationship relationshipTypeName
        • the relationship relationshipTypeGUID
        • be at this end of the relationship.
        • it is visible to the calling user

        Optionally if specified, the attached entity needs to

        • match the searchCriteria taking into account the ignoreCase and startsWith flags against the text property fields named in specificMatchPropertyNames.
        Optionally if specified, the attached entity needs to
        • be in the requested page as specified by startFrom and queryPageSize
        Parameters:
        userId - calling user
        startingGUID - identifier for the entity that the identifier is attached to
        startingGUIDParameterName - name of parameter supplying the GUID
        startingTypeName - name of the type of object being attached to
        relationshipTypeName - name of the type of relationship attaching the attached entity
        relationshipTypeGUID - guid of the type of relationship attaching the attached entity
        selectionEnd - 0 means either end, 1 means only take from end 1, 2 means only take from end 2
        specificMatchPropertyNames - list of property names to
        searchCriteria - text to search on
        startFrom - index of the list to start from (0 for start)
        startsWith - if flag set search looking for matches starting with the supplied searchCriteria, otherwise an exact match
        ignoreCase - if set ignore case on the match, if not set then case must match
        queryPageSize - requested page size
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        List of attached entities
        Throws:
        InvalidParameterException - the parameters are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • getAttachedFilteredEntities

        public List<EntityDetail> getAttachedFilteredEntities​(String userId,
                                                              String startingGUID,
                                                              String startingGUIDParameterName,
                                                              String startingTypeName,
                                                              String relationshipTypeName,
                                                              String relationshipTypeGUID,
                                                              int selectionEnd,
                                                              String attachedEntityFilterRelationshipTypeName,
                                                              String attachedEntityFilterRelationshipTypeGUID,
                                                              boolean attachedEntityParentAtEnd1,
                                                              Set<String> specificMatchPropertyNames,
                                                              String searchCriteria,
                                                              int startFrom,
                                                              boolean startsWith,
                                                              boolean ignoreCase,
                                                              int queryPageSize,
                                                              boolean forDuplicateProcessing,
                                                              Date effectiveTime,
                                                              String methodName)
                                                       throws InvalidParameterException,
                                                              PropertyServerException,
                                                              UserNotAuthorizedException
        Retrieve the entities that are attached to the entity with startingGUID. The entities are only returned if they match the supplied filtering. To be returned the attached entity needs to be directly attached to the entity with startingGUID:
        • with the relationship relationshipTypeName
        • the relationship relationshipTypeGUID
        • be at this end of the relationship.
        • it is visible to the calling user

        Optionally if specified, the attached entity needs to

        • match the searchCriteria taking into account the ignoreCase and startsWith flags against the text property fields named in specificMatchPropertyNames.
        Optionally if specified, the attached entity needs to
        • be in the requested page as specified by startFrom and queryPageSize
        Optionally if specified, the attached entity needs to
        • not have a relationship to a unique parent entity via the attachedEntityFilterRelationshipTypeName
        • not have a relationship to a unique parent entity via the attachedEntityFilterRelationshipTypeGUID
        • not have a relationship to a unique parent entity where the parent is at the other end, the parent end is identified using attachedEntityParentAtEnd1
        Parameters:
        userId - calling user
        startingGUID - identifier for the entity that the identifier is attached to
        startingGUIDParameterName - name of parameter supplying the GUID
        startingTypeName - name of the type of object being attached to
        relationshipTypeName - name of the type of relationship attaching the attached entity
        relationshipTypeGUID - guid of the type of relationship attaching the attached entity
        selectionEnd - 0 means either end, 1 means only take from end 1, 2 means only take from end 2
        attachedEntityFilterRelationshipTypeName - do not return attached entities that have this parent relationship at attachedEntityParentAtEnd1. If null this has not effect on the match.
        attachedEntityFilterRelationshipTypeGUID - do not return attached entities that have this parent relationship at attachedEntityParentAtEnd1. If null this has not effect on the match.
        attachedEntityParentAtEnd1 - if the attached entity has a parent the entity will not be returned.
        specificMatchPropertyNames - list of property names to
        searchCriteria - text to search on
        startFrom - index of the list to start from (0 for start)
        startsWith - if flag set search looking for matches starting with the supplied searchCriteria, otherwise an exact match
        ignoreCase - if set ignore case on the match, if not set then case must match
        queryPageSize - requested page size
        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:
        List of attached entities
        Throws:
        InvalidParameterException - the parameters are invalid
        UserNotAuthorizedException - user not authorized to issue this request
        PropertyServerException - problem accessing the repositories
      • entityMatchSearchCriteria

        protected boolean entityMatchSearchCriteria​(EntityDetail entity,
                                                    Set<String> attributeNames,
                                                    String searchCriteria,
                                                    boolean exactValue,
                                                    boolean ignoreCase)
        Check whether the attribute values, associated with the supplied attribute names, in the supplied entity match the search criteria. This text match is influenced by the exactValue and ignoreCase flags.
        Parameters:
        entity - entity to check
        attributeNames - attribute names to check the value of - these are expected to be attributes that hold text values; if they will be ignored
        searchCriteria - literal text search criteria
        exactValue - when set match exactly otherwise look for matches starting with this text
        ignoreCase - when set ignore the case, otherwise do a case sensitive match.
        Returns:
        true for match otherwise false
      • regexSearchCriteria

        protected String regexSearchCriteria​(String searchCriteria,
                                             boolean exactValue,
                                             boolean ignoreCase)
        Take a literal string supplied in searchCriteria and augment it with extra content for the regex engine to process. 2 flags exactValue and ignoreCase are supplied that determine the nature of the regex expression that is created.
        Parameters:
        searchCriteria - text literal use as the basis of the match, if this empty then match everything ignoring the flags.
        exactValue - the exactValue flag when set means to exactly match the string, otherwise it looks for strings starting with the searchCriteria.
        ignoreCase - if set ignore the case on the match, if not set then the case must match.
        Returns:
        a regex expression created to match implement the supplied searchCriteria and flags.
      • getEntityFromRepository

        public EntityDetail getEntityFromRepository​(String userId,
                                                    String requestedEntityGUID,
                                                    String requestedEntityGUIDParameterName,
                                                    String requestedEntityTypeName,
                                                    String requiredClassificationName,
                                                    String omittedClassificationName,
                                                    boolean forLineage,
                                                    boolean forDuplicateProcessing,
                                                    Date effectiveTime,
                                                    String methodName)
                                             throws InvalidParameterException,
                                                    PropertyServerException,
                                                    UserNotAuthorizedException
        Return the keyword for the supplied unique identifier (guid). The keyword is only returned if
        Parameters:
        userId - userId of the user making the request
        requestedEntityGUID - unique identifier of the entity to retrieve from the repository
        requestedEntityGUIDParameterName - name of the parameter supplying the GUID
        requestedEntityTypeName - name of type of entity to retrieve
        requiredClassificationName - String the name of the classification that must be on the attached entity.
        omittedClassificationName - String the name of a classification that must not be on the attached entity.
        forLineage - the query is to support lineage retrieval
        forDuplicateProcessing - the query 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:
        retrieved entity
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getEntityFromRepository

        public EntityDetail getEntityFromRepository​(String userId,
                                                    String requestedEntityGUID,
                                                    String requestedEntityGUIDParameterName,
                                                    String requestedEntityTypeName,
                                                    String requiredClassificationName,
                                                    String omittedClassificationName,
                                                    boolean forLineage,
                                                    boolean forDuplicateProcessing,
                                                    List<String> serviceSupportedZones,
                                                    Date effectiveTime,
                                                    String methodName)
                                             throws InvalidParameterException,
                                                    PropertyServerException,
                                                    UserNotAuthorizedException
        Return the entity for the supplied unique identifier (guid). An exception is thrown if the entity does not exist.
        Parameters:
        userId - userId of the user making the request
        requestedEntityGUID - unique identifier of the entity to retrieve from the repository
        requestedEntityGUIDParameterName - name of the parameter supplying the GUID
        requestedEntityTypeName - name of type of entity to retrieve
        requiredClassificationName - String the name of the classification that must be on the attached entity
        omittedClassificationName - String the name of a classification that must not be on the attached entity
        forLineage - the query is to support lineage retrieval
        forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
        serviceSupportedZones - supported zones for calling service
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        retrieved entity
        Throws:
        InvalidParameterException - the userId is null or invalid, the entity does not exist.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getBeanFromRepository

        public B getBeanFromRepository​(String userId,
                                       String guid,
                                       String guidParameterName,
                                       String resultTypeName,
                                       String methodName)
                                throws InvalidParameterException,
                                       PropertyServerException,
                                       UserNotAuthorizedException
        Use the supplied unique identifier (guid) of an entity in the repository to retrieve its contents as a bean. The entity is checked to ensure it is of the required return type.
        Parameters:
        userId - calling user
        guid - unique identifier of the entity to retrieve
        guidParameterName - parameter supplying the unique identifier
        resultTypeName - type of the retrieve entity
        methodName - calling method
        Returns:
        B bean
        Throws:
        InvalidParameterException - one of the properties (probably the GUID) is invalid
        PropertyServerException - the repository services hit an unexpected problem
        UserNotAuthorizedException - the user is not permitted to access this entity
      • getBeanFromRepository

        public B getBeanFromRepository​(String userId,
                                       String guid,
                                       String guidParameterName,
                                       String entityTypeName,
                                       boolean forLineage,
                                       boolean forDuplicateProcessing,
                                       Date effectiveTime,
                                       String methodName)
                                throws InvalidParameterException,
                                       PropertyServerException,
                                       UserNotAuthorizedException
        Return the bean for the supplied unique identifier (guid). An exception occurs if the bean GUID is not known.
        Parameters:
        userId - userId of the user making the request
        guid - unique identifier of the entity to retrieve from the repository
        guidParameterName - name of the parameter supplying the GUID
        entityTypeName - name of type of entity to retrieve
        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:
        new bean
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getBeanFromRepository

        public B getBeanFromRepository​(String userId,
                                       String guid,
                                       String guidParameterName,
                                       String entityTypeName,
                                       boolean forLineage,
                                       boolean forDuplicateProcessing,
                                       List<String> serviceSupportedZones,
                                       Date effectiveTime,
                                       String methodName)
                                throws InvalidParameterException,
                                       PropertyServerException,
                                       UserNotAuthorizedException
        Return the bean for the supplied unique identifier (guid). An exception occurs if the bean GUID is not known.
        Parameters:
        userId - userId of the user making the request
        guid - unique identifier of the entity to retrieve from the repository
        guidParameterName - name of the parameter supplying the GUID
        entityTypeName - name of type of entity to retrieve
        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
        serviceSupportedZones - supported zones for calling service
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        new bean
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getBeanGUIDByUniqueName

        public String getBeanGUIDByUniqueName​(String userId,
                                              String name,
                                              String nameParameterName,
                                              String namePropertyName,
                                              String resultTypeGUID,
                                              String resultTypeName,
                                              boolean forLineage,
                                              boolean forDuplicateProcessing,
                                              Date effectiveTime,
                                              String methodName)
                                       throws InvalidParameterException,
                                              PropertyServerException,
                                              UserNotAuthorizedException
        Return the unique identifier of the entity that has the supplied unique name. An exception is thrown if multiple entities are found with this name.
        Parameters:
        userId - the calling user
        name - value to search
        nameParameterName - parameter providing value
        namePropertyName - open metadata property name to match on
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        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 requested entity/bean
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getBeanGUIDByUniqueName

        public String getBeanGUIDByUniqueName​(String userId,
                                              String name,
                                              String nameParameterName,
                                              String namePropertyName,
                                              String resultTypeGUID,
                                              String resultTypeName,
                                              boolean forLineage,
                                              boolean forDuplicateProcessing,
                                              List<String> serviceSupportedZones,
                                              Date effectiveTime,
                                              String methodName)
                                       throws InvalidParameterException,
                                              PropertyServerException,
                                              UserNotAuthorizedException
        Return the unique identifier of the entity that has the supplied unique name. An exception is thrown if multiple entities are found with this name.
        Parameters:
        userId - the calling user
        name - value to search
        nameParameterName - parameter providing value
        namePropertyName - open metadata property name to match on
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        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
        serviceSupportedZones - list of supported zones for this service
        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 requested entity/bean
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getBeanByUniqueName

        public B getBeanByUniqueName​(String userId,
                                     String name,
                                     String nameParameterName,
                                     String namePropertyName,
                                     String resultTypeGUID,
                                     String resultTypeName,
                                     Date effectiveTime,
                                     String methodName)
                              throws InvalidParameterException,
                                     PropertyServerException,
                                     UserNotAuthorizedException
        Return the list of beans of the requested type that match the supplied value.
        Parameters:
        userId - the calling user
        name - value to search
        nameParameterName - parameter providing value
        namePropertyName - open metadata property name to match on
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getBeanByUniqueName

        public B getBeanByUniqueName​(String userId,
                                     String name,
                                     String nameParameterName,
                                     String namePropertyName,
                                     String resultTypeGUID,
                                     String resultTypeName,
                                     boolean forLineage,
                                     boolean forDuplicateProcessing,
                                     List<String> serviceSupportedZones,
                                     Date effectiveTime,
                                     String methodName)
                              throws InvalidParameterException,
                                     PropertyServerException,
                                     UserNotAuthorizedException
        Return the list of beans of the requested type that match the supplied value.
        Parameters:
        userId - the calling user
        name - value to search
        nameParameterName - parameter providing value
        namePropertyName - open metadata property name to match on
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        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
        serviceSupportedZones - list of supported zones for this service
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getBeanByValue

        public B getBeanByValue​(String userId,
                                String value,
                                String valueParameterName,
                                String resultTypeGUID,
                                String resultTypeName,
                                List<String> specificMatchPropertyNames,
                                boolean forLineage,
                                boolean forDuplicateProcessing,
                                Date effectiveTime,
                                String methodName)
                         throws InvalidParameterException,
                                UserNotAuthorizedException,
                                PropertyServerException
        Return the bean that matches the requested value.
        Parameters:
        userId - identifier of calling user
        value - value to search
        valueParameterName - parameter providing value
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
        forLineage - the query is to support lineage retrieval
        forDuplicateProcessing - the query 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:
        matching bean.
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        UserNotAuthorizedException - user not authorized to issue this request.
        PropertyServerException - problem retrieving the bean definition.
      • getBeansByValue

        public List<B> getBeansByValue​(String userId,
                                       String value,
                                       String valueParameterName,
                                       String resultTypeGUID,
                                       String resultTypeName,
                                       List<String> specificMatchPropertyNames,
                                       boolean exactValueMatch,
                                       String sequencingPropertyName,
                                       int startFrom,
                                       int pageSize,
                                       Date effectiveTime,
                                       String methodName)
                                throws InvalidParameterException,
                                       PropertyServerException,
                                       UserNotAuthorizedException
        Return the list of beans of the requested type that match the supplied value.
        Parameters:
        userId - the calling user
        value - value to search
        valueParameterName - parameter providing value
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
        exactValueMatch - indicates whether the value must match the whole property value in a matching result, or whether it is a RegEx partial match
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • findBeans

        public List<B> findBeans​(String userId,
                                 String searchString,
                                 String searchStringParameterName,
                                 String resultTypeGUID,
                                 String resultTypeName,
                                 String sequencingPropertyName,
                                 int startFrom,
                                 int pageSize,
                                 Date effectiveTime,
                                 String methodName)
                          throws InvalidParameterException,
                                 PropertyServerException,
                                 UserNotAuthorizedException
        Return the list of beans matching the supplied searchString.
        Parameters:
        userId - the searchString of the calling user.
        searchString - searchString of endpoint. This may include wild card characters.
        searchStringParameterName - name of parameter providing search string
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • findBeans

        public List<B> findBeans​(String userId,
                                 String searchString,
                                 String searchStringParameterName,
                                 String resultTypeGUID,
                                 String resultTypeName,
                                 boolean forLineage,
                                 boolean forDuplicateProcessing,
                                 List<String> serviceSupportedZones,
                                 String sequencingPropertyName,
                                 int startFrom,
                                 int pageSize,
                                 Date effectiveTime,
                                 String methodName)
                          throws InvalidParameterException,
                                 PropertyServerException,
                                 UserNotAuthorizedException
        Return the list of beans matching the supplied searchString.
        Parameters:
        userId - the searchString of the calling user.
        searchString - searchString of endpoint. This may include wild card characters.
        searchStringParameterName - name of parameter providing search string
        serviceSupportedZones - list of supported zones for this service.
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        forDuplicateProcessing - this request os for duplicate processing so do not deduplicate
        forLineage - this request is for lineage so ignore Memento classifications
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • findBeans

        public List<B> findBeans​(String userId,
                                 String metadataElementTypeName,
                                 List<String> metadataElementSubtypeName,
                                 SearchProperties searchProperties,
                                 List<InstanceStatus> limitResultsByStatus,
                                 SearchClassifications searchClassifications,
                                 Date asOfTime,
                                 String sequencingProperty,
                                 SequencingOrder sequencingOrder,
                                 boolean forLineage,
                                 boolean forDuplicateProcessing,
                                 int startingFrom,
                                 int pageSize,
                                 Date effectiveTime,
                                 String methodName)
                          throws InvalidParameterException,
                                 UserNotAuthorizedException,
                                 PropertyServerException
        Return a list of metadata elements that match the supplied criteria. The results can be returned over many pages.
        Parameters:
        userId - caller's userId
        metadataElementTypeName - type of interest (null means any element type)
        metadataElementSubtypeName - optional list of the subtypes of the metadataElementTypeName to include in the search results. Null means all subtypes.
        searchProperties - Optional list of entity property conditions to match.
        limitResultsByStatus - By default, entities in all statuses (other than DELETE) are returned. However, it is possible to specify a list of statuses (eg ACTIVE) to restrict the results to. Null means all status values.
        searchClassifications - Optional list of classifications to match.
        asOfTime - Requests a historical query of the entity. Null means return the present values.
        sequencingProperty - String name of the property that is to be used to sequence the results. Null means do not sequence on a property name (see SequencingOrder).
        sequencingOrder - Enum defining how the results should be ordered.
        forLineage - the retrieved element is for lineage processing so include archived elements
        forDuplicateProcessing - the retrieved element is for duplicate processing so do not combine results from known duplicates.
        startingFrom - paging start point
        pageSize - maximum results that can be returned
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        a list of elements matching the supplied criteria; null means no matching elements in the metadata store.
        Throws:
        InvalidParameterException - one of the search parameters is invalid
        UserNotAuthorizedException - the governance action service is not able to access the elements
        PropertyServerException - there is a problem accessing the metadata store
      • getBeansByValue

        public List<B> getBeansByValue​(String userId,
                                       String value,
                                       String valueParameterName,
                                       String resultTypeGUID,
                                       String resultTypeName,
                                       List<String> specificMatchPropertyNames,
                                       boolean exactValueMatch,
                                       List<String> serviceSupportedZones,
                                       String sequencingPropertyName,
                                       int startFrom,
                                       int pageSize,
                                       Date effectiveTime,
                                       String methodName)
                                throws InvalidParameterException,
                                       PropertyServerException,
                                       UserNotAuthorizedException
        Return the list of beans of the requested type that match the supplied value.
        Parameters:
        userId - the calling user
        value - value to search
        valueParameterName - parameter providing value
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
        exactValueMatch - indicates whether the value must match the whole property value in a matching result, or whether it is a RegEx partial match
        serviceSupportedZones - list of supported zones for this service
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getBeansByValue

        public List<B> getBeansByValue​(String userId,
                                       String value,
                                       String valueParameterName,
                                       String resultTypeGUID,
                                       String resultTypeName,
                                       List<String> specificMatchPropertyNames,
                                       boolean exactValueMatch,
                                       String requiredClassificationName,
                                       String omittedClassificationName,
                                       boolean forLineage,
                                       boolean forDuplicateProcessing,
                                       String sequencingPropertyName,
                                       int startFrom,
                                       int pageSize,
                                       Date effectiveTime,
                                       String methodName)
                                throws InvalidParameterException,
                                       PropertyServerException,
                                       UserNotAuthorizedException
        Return the list of beans of the requested type that match the supplied value.
        Parameters:
        userId - the calling user
        value - value to search
        valueParameterName - parameter providing value
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
        exactValueMatch - indicates whether the value must match the whole property value in a matching result, or whether it is a RegEx partial match
        requiredClassificationName - String the name of the classification that must be on the entity.
        omittedClassificationName - String the name of a classification that must not be on the entity.
        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
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getBeansByIntValue

        public List<B> getBeansByIntValue​(String userId,
                                          int value,
                                          String resultTypeGUID,
                                          String resultTypeName,
                                          String propertyName,
                                          String requiredClassificationName,
                                          String omittedClassificationName,
                                          boolean forLineage,
                                          boolean forDuplicateProcessing,
                                          List<String> serviceSupportedZones,
                                          String sequencingPropertyName,
                                          int startFrom,
                                          int pageSize,
                                          Date effectiveTime,
                                          String methodName)
                                   throws InvalidParameterException,
                                          PropertyServerException,
                                          UserNotAuthorizedException
        Return the list of beans of the requested type that match the supplied integer value.
        Parameters:
        userId - the calling user
        value - value to search
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        propertyName - property to look in - if null or empty list then all string properties are checked.
        requiredClassificationName - String the name of the classification that must be on the entity.
        omittedClassificationName - String the name of a classification that must not be on the entity.
        forLineage - the query is to support lineage retrieval
        forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
        serviceSupportedZones - list of supported zones for this service
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getBeansByValue

        public List<B> getBeansByValue​(String userId,
                                       String value,
                                       String valueParameterName,
                                       String resultTypeGUID,
                                       String resultTypeName,
                                       List<String> specificMatchPropertyNames,
                                       boolean exactValueMatch,
                                       String requiredClassificationName,
                                       String omittedClassificationName,
                                       boolean forLineage,
                                       boolean forDuplicateProcessing,
                                       List<String> serviceSupportedZones,
                                       String sequencingPropertyName,
                                       int startFrom,
                                       int pageSize,
                                       Date effectiveTime,
                                       String methodName)
                                throws InvalidParameterException,
                                       PropertyServerException,
                                       UserNotAuthorizedException
        Return the list of beans of the requested type that match the supplied value.
        Parameters:
        userId - the calling user
        value - value to search
        valueParameterName - parameter providing value
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
        exactValueMatch - indicates whether the value must match the whole property value in a matching result, or whether it is a RegEx partial match
        requiredClassificationName - String the name of the classification that must be on the entity.
        omittedClassificationName - String the name of a classification that must not be on the entity.
        forLineage - the query is to support lineage retrieval
        forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
        serviceSupportedZones - list of supported zones for this service
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getEntitiesByType

        public List<EntityDetail> getEntitiesByType​(String userId,
                                                    String resultTypeGUID,
                                                    String resultTypeName,
                                                    String sequencingPropertyName,
                                                    boolean forLineage,
                                                    boolean forDuplicateProcessing,
                                                    int startFrom,
                                                    int pageSize,
                                                    Date effectiveTime,
                                                    String methodName)
                                             throws InvalidParameterException,
                                                    PropertyServerException,
                                                    UserNotAuthorizedException
        Return the list of entities of the requested type.
        Parameters:
        userId - the name of the calling user
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique name of the type that the results should match with
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        startFrom - index of the list to start from (0 for start)
        pageSize - maximum number of elements to return
        forLineage - the query is to support lineage retrieval
        forDuplicateProcessing - the query 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:
        list of entities
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getEntitiesByType

        public List<EntityDetail> getEntitiesByType​(String userId,
                                                    String resultTypeGUID,
                                                    String resultTypeName,
                                                    String sequencingPropertyName,
                                                    boolean forLineage,
                                                    boolean forDuplicateProcessing,
                                                    List<String> serviceSupportedZones,
                                                    int startFrom,
                                                    int pageSize,
                                                    Date effectiveTime,
                                                    String methodName)
                                             throws InvalidParameterException,
                                                    PropertyServerException,
                                                    UserNotAuthorizedException
        Return the list of entities of the requested type.
        Parameters:
        userId - the name of the calling user
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique name of the type that the results should match with
        serviceSupportedZones - list of supported zones for this service
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        startFrom - index of the list to start from (0 for start)
        pageSize - maximum number of elements to return
        forLineage - the query is to support lineage retrieval
        forDuplicateProcessing - the query 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:
        list of entities
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • findEntities

        public List<EntityDetail> findEntities​(String userId,
                                               String searchString,
                                               String searchStringParameterName,
                                               String resultTypeGUID,
                                               String resultTypeName,
                                               String requiredClassificationName,
                                               String omittedClassificationName,
                                               String sequencingPropertyName,
                                               int startFrom,
                                               int pageSize,
                                               Date effectiveTime,
                                               String methodName)
                                        throws InvalidParameterException,
                                               PropertyServerException,
                                               UserNotAuthorizedException
        Return the list of entities matching the supplied searchString.
        Parameters:
        userId - the searchString of the calling user.
        searchString - searchString of endpoint. This may include wild card characters.
        searchStringParameterName - name of parameter providing search string
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        requiredClassificationName - String the name of the classification that must be on the entity.
        omittedClassificationName - String the name of a classification that must not be on the entity.
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of entities
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getEntitiesByValue

        public List<EntityDetail> getEntitiesByValue​(String userId,
                                                     String value,
                                                     String valueParameterName,
                                                     String resultTypeGUID,
                                                     String resultTypeName,
                                                     List<String> specificMatchPropertyNames,
                                                     boolean exactValueMatch,
                                                     String requiredClassificationName,
                                                     String omittedClassificationName,
                                                     boolean forLineage,
                                                     boolean forDuplicateProcessing,
                                                     int startFrom,
                                                     int pageSize,
                                                     Date effectiveTime,
                                                     String methodName)
                                              throws InvalidParameterException,
                                                     PropertyServerException,
                                                     UserNotAuthorizedException
        Return the list of entities of the requested type that match the supplied value.
        Parameters:
        userId - the calling user
        value - value to search
        valueParameterName - parameter providing value
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
        exactValueMatch - indicates whether the value must match the whole property value in a matching result, or whether it is a RegEx partial match
        requiredClassificationName - String the name of the classification that must be on the attached entity.
        omittedClassificationName - String the name of a classification that must not be on the attached entity.
        forLineage - the query is to support lineage retrieval
        forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getEntitiesByValue

        public List<EntityDetail> getEntitiesByValue​(String userId,
                                                     String value,
                                                     String valueParameterName,
                                                     String resultTypeGUID,
                                                     String resultTypeName,
                                                     List<String> specificMatchPropertyNames,
                                                     boolean exactValueMatch,
                                                     String requiredClassificationName,
                                                     String omittedClassificationName,
                                                     String sequencingPropertyName,
                                                     int startFrom,
                                                     int pageSize,
                                                     Date effectiveTime,
                                                     String methodName)
                                              throws InvalidParameterException,
                                                     PropertyServerException,
                                                     UserNotAuthorizedException
        Return the list of entities of the requested type that match the supplied value.
        Parameters:
        userId - the calling user
        value - value to search
        valueParameterName - parameter providing value
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
        exactValueMatch - indicates whether the value must match the whole property value in a matching result, or whether it is a RegEx partial match
        requiredClassificationName - String the name of the classification that must be on the attached entity.
        omittedClassificationName - String the name of a classification that must not be on the attached entity.
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getEntitiesByIntValue

        public List<EntityDetail> getEntitiesByIntValue​(String userId,
                                                        int value,
                                                        String resultTypeGUID,
                                                        String resultTypeName,
                                                        String propertyName,
                                                        String requiredClassificationName,
                                                        String omittedClassificationName,
                                                        boolean forLineage,
                                                        boolean forDuplicateProcessing,
                                                        List<String> serviceSupportedZones,
                                                        String sequencingPropertyName,
                                                        int startFrom,
                                                        int pageSize,
                                                        Date effectiveTime,
                                                        String methodName)
                                                 throws InvalidParameterException,
                                                        PropertyServerException,
                                                        UserNotAuthorizedException
        Return the list of entities of the requested type that match the supplied value.
        Parameters:
        userId - the calling user
        value - value to search
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        propertyName - property name to look in.
        requiredClassificationName - String the name of the classification that must be on the attached entity
        omittedClassificationName - String the name of a classification that must not be on the attached entity
        forLineage - boolean indicating whether the entity is being retrieved for a lineage request or not
        forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
        serviceSupportedZones - list of supported zones for this service
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getEntitiesByValue

        public List<EntityDetail> getEntitiesByValue​(String userId,
                                                     String value,
                                                     String valueParameterName,
                                                     String resultTypeGUID,
                                                     String resultTypeName,
                                                     List<String> specificMatchPropertyNames,
                                                     boolean exactValueMatch,
                                                     String requiredClassificationName,
                                                     String omittedClassificationName,
                                                     boolean forLineage,
                                                     boolean forDuplicateProcessing,
                                                     String sequencingPropertyName,
                                                     int startFrom,
                                                     int pageSize,
                                                     Date effectiveTime,
                                                     String methodName)
                                              throws InvalidParameterException,
                                                     PropertyServerException,
                                                     UserNotAuthorizedException
        Return the list of entities of the requested type that match the supplied value.
        Parameters:
        userId - the calling user
        value - value to search
        valueParameterName - parameter providing value
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
        exactValueMatch - indicates whether the value must match the whole property value in a matching result, or whether it is a RegEx partial match
        requiredClassificationName - String the name of the classification that must be on the attached entity
        omittedClassificationName - String the name of a classification that must not be on the attached entity
        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
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getEntitiesByValue

        public List<EntityDetail> getEntitiesByValue​(String userId,
                                                     String value,
                                                     String valueParameterName,
                                                     String resultTypeGUID,
                                                     String resultTypeName,
                                                     List<String> specificMatchPropertyNames,
                                                     boolean exactValueMatch,
                                                     String requiredClassificationName,
                                                     String omittedClassificationName,
                                                     boolean forLineage,
                                                     boolean forDuplicateProcessing,
                                                     List<String> serviceSupportedZones,
                                                     String sequencingPropertyName,
                                                     int startFrom,
                                                     int pageSize,
                                                     Date effectiveTime,
                                                     String methodName)
                                              throws InvalidParameterException,
                                                     PropertyServerException,
                                                     UserNotAuthorizedException
        Return the list of entities of the requested type that match the supplied value.
        Parameters:
        userId - the calling user
        value - value to search
        valueParameterName - parameter providing value
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
        exactValueMatch - indicates whether the value must match the whole property value in a matching result, or whether it is a RegEx partial match
        requiredClassificationName - String the name of the classification that must be on the attached entity
        omittedClassificationName - String the name of a classification that must not be on the attached entity
        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
        serviceSupportedZones - list of supported zones for this service
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getEntitiesByValue

        public List<EntityDetail> getEntitiesByValue​(String userId,
                                                     RepositoryIteratorForEntities iterator,
                                                     String entityParameterName,
                                                     String resultTypeName,
                                                     String requiredClassificationName,
                                                     String omittedClassificationName,
                                                     boolean forLineage,
                                                     boolean forDuplicateProcessing,
                                                     List<String> serviceSupportedZones,
                                                     int startFrom,
                                                     int queryPageSize,
                                                     Date effectiveTime,
                                                     String methodName)
                                              throws PropertyServerException,
                                                     UserNotAuthorizedException
        Return the list of entities of the requested type that match the supplied value.
        Parameters:
        userId - the calling user
        iterator - mechanism for search
        entityParameterName - parameter description
        resultTypeName - unique value of the type that the results should match with
        requiredClassificationName - String the name of the classification that must be on the attached entity
        omittedClassificationName - String the name of a classification that must not be on the attached entity
        forLineage - boolean indicating whether the entity is being retrieved for a lineage request or not
        forDuplicateProcessing - the query is for duplicate processing and so must not deduplicate
        serviceSupportedZones - list of supported zones for this service
        startFrom - index of the list to start from (0 for start)
        queryPageSize - maximum number of elements to return
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getEntityGUIDsByValue

        public List<String> getEntityGUIDsByValue​(String userId,
                                                  String value,
                                                  String valueParameterName,
                                                  String resultTypeGUID,
                                                  String resultTypeName,
                                                  List<String> specificMatchPropertyNames,
                                                  boolean exactValueMatch,
                                                  String requiredClassificationName,
                                                  String omittedClassificationName,
                                                  boolean forLineage,
                                                  boolean forDuplicateProcessing,
                                                  List<String> serviceSupportedZones,
                                                  String sequencingPropertyName,
                                                  int startFrom,
                                                  int pageSize,
                                                  Date effectiveTime,
                                                  String methodName)
                                           throws InvalidParameterException,
                                                  PropertyServerException,
                                                  UserNotAuthorizedException
        Return the list of entities of the requested type that match the supplied value.
        Parameters:
        userId - the calling user
        value - value to search
        valueParameterName - parameter providing value
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
        exactValueMatch - indicates whether the value must match the whole property value in a matching result, or whether it is a RegEx partial match
        requiredClassificationName - String the name of the classification that must be on the attached entity.
        omittedClassificationName - String the name of a classification that must not be on the attached entity.
        forLineage - boolean indicating whether the entity is being retrieved for a lineage request or not.
        serviceSupportedZones - list of supported zones for this service
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        startFrom - index of the list to start from (0 for start)
        pageSize - maximum number of elements to return
        forDuplicateProcessing - the query 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:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getEntityByValue

        public EntityDetail getEntityByValue​(String userId,
                                             String value,
                                             String valueParameterName,
                                             String resultTypeGUID,
                                             String resultTypeName,
                                             List<String> specificMatchPropertyNames,
                                             boolean forLineage,
                                             boolean forDuplicateProcessing,
                                             Date effectiveTime,
                                             String methodName)
                                      throws InvalidParameterException,
                                             UserNotAuthorizedException,
                                             PropertyServerException
        Return the entity that matches the requested value.
        Parameters:
        userId - identifier of calling user
        value - value to search
        valueParameterName - parameter providing value
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
        forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
        forDuplicateProcessing - the query 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:
        requested entity
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        UserNotAuthorizedException - user not authorized to issue this request.
        PropertyServerException - problem retrieving the entity.
      • getEntityGUIDByValue

        public String getEntityGUIDByValue​(String userId,
                                           String value,
                                           String valueParameterName,
                                           String resultTypeGUID,
                                           String resultTypeName,
                                           List<String> specificMatchPropertyNames,
                                           boolean forLineage,
                                           boolean forDuplicateProcessing,
                                           Date effectiveTime,
                                           String methodName)
                                    throws InvalidParameterException,
                                           UserNotAuthorizedException,
                                           PropertyServerException
        Return the unique identifier of the entity matching the value.
        Parameters:
        userId - identifier of calling user
        value - value to search
        valueParameterName - parameter providing value
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
        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 requested entity.
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        UserNotAuthorizedException - user not authorized to issue this request.
        PropertyServerException - problem retrieving the entity.
      • findBeanGUIDs

        public List<String> findBeanGUIDs​(String userId,
                                          String searchString,
                                          String searchStringParameterName,
                                          String resultTypeGUID,
                                          String resultTypeName,
                                          String sequencingPropertyName,
                                          int startFrom,
                                          int pageSize,
                                          Date effectiveTime,
                                          String methodName)
                                   throws InvalidParameterException,
                                          PropertyServerException,
                                          UserNotAuthorizedException
        Return the list of beans of the requested type that match the supplied value.
        Parameters:
        userId - the searchString of the calling user.
        searchString - searchString of endpoint. This may include wild card characters.
        searchStringParameterName - name of parameter providing search string
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getBeanGUIDsByValue

        public List<String> getBeanGUIDsByValue​(String userId,
                                                String value,
                                                String valueParameterName,
                                                String resultTypeGUID,
                                                String resultTypeName,
                                                List<String> specificMatchPropertyNames,
                                                boolean exactValueMatch,
                                                List<String> serviceSupportedZones,
                                                String sequencingPropertyName,
                                                int startFrom,
                                                int pageSize,
                                                Date effectiveTime,
                                                String methodName)
                                         throws InvalidParameterException,
                                                PropertyServerException,
                                                UserNotAuthorizedException
        Return the list of beans of the requested type that match the supplied value.
        Parameters:
        userId - the calling user
        value - value to search
        valueParameterName - parameter providing value
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique value of the type that the results should match with
        specificMatchPropertyNames - list of property value to look in - if null or empty list then all string properties are checked.
        exactValueMatch - indicates whether the value must match the whole property value in a matching result, or whether it is a RegEx partial match
        serviceSupportedZones - list of supported zones for this service
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getBeansByCreator

        public List<B> getBeansByCreator​(String userId,
                                         String searchString,
                                         String searchStringParameterName,
                                         String resultTypeGUID,
                                         String resultTypeName,
                                         List<String> specificMatchPropertyNames,
                                         boolean exactValueMatch,
                                         boolean forLineage,
                                         boolean forDuplicateProcessing,
                                         List<String> serviceSupportedZones,
                                         String sequencingPropertyName,
                                         int startFrom,
                                         int pageSize,
                                         Date effectiveTime,
                                         String methodName)
                                  throws InvalidParameterException,
                                         PropertyServerException,
                                         UserNotAuthorizedException
        Return the list of beans of the requested type that were created by the requesting user.
        Parameters:
        userId - the name of the calling user
        searchString - value that describes what to search for
        searchStringParameterName - parameter providing search string
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique name of the type that the results should match with
        specificMatchPropertyNames - name of properties to visit
        exactValueMatch - does the value need to match exactly?
        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
        serviceSupportedZones - list of supported zones for this service
        sequencingPropertyName - should the results be sequenced?
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getBeansByType

        public List<B> getBeansByType​(String userId,
                                      String resultTypeGUID,
                                      String resultTypeName,
                                      String sequencingPropertyName,
                                      int startFrom,
                                      int pageSize,
                                      Date effectiveTime,
                                      String methodName)
                               throws InvalidParameterException,
                                      PropertyServerException,
                                      UserNotAuthorizedException
        Return the list of beans of the requested type.
        Parameters:
        userId - the name of the calling user
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique name of the type that the results should match with
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getBeansByType

        public List<B> getBeansByType​(String userId,
                                      String resultTypeGUID,
                                      String resultTypeName,
                                      String sequencingPropertyName,
                                      boolean forLineage,
                                      boolean forDuplicateProcessing,
                                      List<String> serviceSupportedZones,
                                      int startFrom,
                                      int pageSize,
                                      Date effectiveTime,
                                      String methodName)
                               throws InvalidParameterException,
                                      PropertyServerException,
                                      UserNotAuthorizedException
        Return the list of beans of the requested type that match the supplied name.
        Parameters:
        userId - the name of the calling user
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique name of the type that the results should match with
        serviceSupportedZones - list of supported zones for this service
        forDuplicateProcessing - this request os for duplicate processing so do not deduplicate
        forLineage - this request is for lineage so ignore Memento classifications
        sequencingPropertyName - name of property used to sequence the results - null means no sequencing
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getBeanGUIDsByType

        public List<String> getBeanGUIDsByType​(String userId,
                                               String resultTypeGUID,
                                               String resultTypeName,
                                               String sequencingPropertyName,
                                               int startFrom,
                                               int pageSize,
                                               Date effectiveTime,
                                               String methodName)
                                        throws InvalidParameterException,
                                               PropertyServerException,
                                               UserNotAuthorizedException
        Return the list of beans of the requested type.
        Parameters:
        userId - the name of the calling user
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique name of the type that the results should match with
        sequencingPropertyName - should the results be sequenced?
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of unique identifiers for matching beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getBeanGUIDsByType

        public List<String> getBeanGUIDsByType​(String userId,
                                               String resultTypeGUID,
                                               String resultTypeName,
                                               String sequencingPropertyName,
                                               boolean forLineage,
                                               boolean forDuplicateProcessing,
                                               List<String> serviceSupportedZones,
                                               int startFrom,
                                               int pageSize,
                                               Date effectiveTime,
                                               String methodName)
                                        throws InvalidParameterException,
                                               PropertyServerException,
                                               UserNotAuthorizedException
        Return the list of beans of the requested type.
        Parameters:
        userId - the name of the calling user
        resultTypeGUID - unique identifier of the type that the results should match with
        resultTypeName - unique name of the type that the results should match with
        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
        serviceSupportedZones - list of supported zones for this service
        sequencingPropertyName - should the results be sequenced?
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of unique identifiers for matching beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getBeansByClassification

        public List<B> getBeansByClassification​(String userId,
                                                String resultTypeGUID,
                                                String resultClassificationName,
                                                boolean forLineage,
                                                boolean forDuplicateProcessing,
                                                int startFrom,
                                                int pageSize,
                                                Date effectiveTime,
                                                String methodName)
                                         throws InvalidParameterException,
                                                PropertyServerException,
                                                UserNotAuthorizedException
        Return the list of beans of the requested type that match the supplied classification.
        Parameters:
        userId - the name of the calling user
        resultTypeGUID - unique identifier of the type that the results should match with
        resultClassificationName - unique name of the classification that the results should match with
        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
        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
        methodName - calling method
        Returns:
        list of beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getBeanGUIDsByClassification

        public List<String> getBeanGUIDsByClassification​(String userId,
                                                         String resultTypeGUID,
                                                         String resultClassificationName,
                                                         boolean forLineage,
                                                         boolean forDuplicateProcessing,
                                                         int startFrom,
                                                         int pageSize,
                                                         Date effectiveTime,
                                                         String methodName)
                                                  throws InvalidParameterException,
                                                         PropertyServerException,
                                                         UserNotAuthorizedException
        Return the list of beans of the requested type that match the supplied classification.
        Parameters:
        userId - the name of the calling user
        resultTypeGUID - unique identifier of the type that the results should match with
        resultClassificationName - unique name of the classification that the results should match with
        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
        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 (null for any time, new Date() for now)
        methodName - calling method
        Returns:
        list of guids representing beans
        Throws:
        InvalidParameterException - the userId is null or invalid.
        PropertyServerException - there is a problem retrieving information from the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • linkElementToElement

        public String linkElementToElement​(String userId,
                                           String externalSourceGUID,
                                           String externalSourceName,
                                           String startingGUID,
                                           String startingGUIDParameterName,
                                           String startingElementTypeName,
                                           String attachingGUID,
                                           String attachingGUIDParameterName,
                                           String attachingElementTypeName,
                                           boolean forLineage,
                                           boolean forDuplicateProcessing,
                                           String relationshipTypeGUID,
                                           String relationshipTypeName,
                                           InstanceProperties relationshipProperties,
                                           String methodName)
                                    throws InvalidParameterException,
                                           PropertyServerException,
                                           UserNotAuthorizedException
        Creates a relationship between two elements and updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the link.
        Parameters:
        userId - userId of user making request
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        startingGUID - unique id for the starting element's entity
        startingGUIDParameterName - name of the parameter supplying the startingGUID
        startingElementTypeName - type name of the starting element's entity
        attachingGUID - unique id of the entity for the element that is being attached
        attachingGUIDParameterName - name of the parameter supplying the attachingGUID
        attachingElementTypeName - type name of the attaching element's entity
        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
        relationshipTypeGUID - unique identifier of type of the relationship to create
        relationshipTypeName - unique name of type of the relationship to create
        relationshipProperties - properties to add to the relationship or null if no properties to add
        methodName - calling method
        Returns:
        unique identifier of the new relationship
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem updating the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • linkElementToElement

        public String linkElementToElement​(String userId,
                                           String externalSourceGUID,
                                           String externalSourceName,
                                           String startingGUID,
                                           String startingGUIDParameterName,
                                           String startingElementTypeName,
                                           String attachingGUID,
                                           String attachingGUIDParameterName,
                                           String attachingElementTypeName,
                                           boolean forLineage,
                                           boolean forDuplicateProcessing,
                                           String relationshipTypeGUID,
                                           String relationshipTypeName,
                                           Date effectiveFrom,
                                           Date effectiveTo,
                                           Map<String,​Object> relationshipProperties,
                                           String methodName)
                                    throws InvalidParameterException,
                                           PropertyServerException,
                                           UserNotAuthorizedException
        Creates a relationship between two elements and updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the link.
        Parameters:
        userId - userId of user making request
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        startingGUID - unique id for the starting element's entity
        startingGUIDParameterName - name of the parameter supplying the startingGUID
        startingElementTypeName - type name of the starting element's entity
        attachingGUID - unique id of the entity for the element that is being attached
        attachingGUIDParameterName - name of the parameter supplying the attachingGUID
        attachingElementTypeName - type name of the attaching element's entity
        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
        relationshipTypeGUID - unique identifier of type of the relationship to create
        relationshipTypeName - unique name of type of the relationship to create
        effectiveFrom - the date when this element is active - null for active now
        effectiveTo - the date when this element becomes inactive - null for active until deleted
        relationshipProperties - properties to add to the relationship or null if no properties to add
        methodName - calling method
        Returns:
        unique identifier of the new relationship
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem updating the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • linkElementToElement

        public String linkElementToElement​(String userId,
                                           String externalSourceGUID,
                                           String externalSourceName,
                                           String startingGUID,
                                           String startingGUIDParameterName,
                                           String startingElementTypeName,
                                           String attachingGUID,
                                           String attachingGUIDParameterName,
                                           String attachingElementTypeName,
                                           boolean forLineage,
                                           boolean forDuplicateProcessing,
                                           List<String> suppliedSupportedZones,
                                           String attachmentTypeGUID,
                                           String attachmentTypeName,
                                           InstanceProperties relationshipProperties,
                                           String methodName)
                                    throws InvalidParameterException,
                                           PropertyServerException,
                                           UserNotAuthorizedException
        Creates a relationship between two elements and updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the link. If the relationship already exists with matching effectivity dates, the properties are updated.
        Parameters:
        userId - userId of user making request
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        startingGUID - unique id for the starting element's entity
        startingGUIDParameterName - name of the parameter supplying the startingGUID
        startingElementTypeName - type name of the starting element's entity
        attachingGUID - unique id of the entity for the element that is being attached
        attachingGUIDParameterName - name of the parameter supplying the attachingGUID
        attachingElementTypeName - type name of the attaching element's entity
        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
        suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
        attachmentTypeGUID - unique identifier of type of the relationship to create
        attachmentTypeName - unique name of type of the relationship to create
        relationshipProperties - properties to add to the relationship or null if no properties to add
        methodName - calling method
        Returns:
        unique identifier of the new relationship
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem adding the relationship to the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • linkElementToElement

        public String linkElementToElement​(String userId,
                                           String externalSourceGUID,
                                           String externalSourceName,
                                           String startingElementGUID,
                                           String startingGUIDParameterName,
                                           String startingElementTypeName,
                                           String attachingElementGUID,
                                           String attachingGUIDParameterName,
                                           String attachingElementTypeName,
                                           boolean forLineage,
                                           boolean forDuplicateProcessing,
                                           List<String> suppliedSupportedZones,
                                           String attachmentTypeGUID,
                                           String attachmentTypeName,
                                           InstanceProperties relationshipProperties,
                                           Date effectiveFrom,
                                           Date effectiveTo,
                                           Date effectiveTime,
                                           String methodName)
                                    throws InvalidParameterException,
                                           PropertyServerException,
                                           UserNotAuthorizedException
        Creates a relationship between two elements and updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the link. If the relationship already exists with matching effectivity dates, the properties are updated.
        Parameters:
        userId - userId of user making request
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        startingElementGUID - unique id for the starting element's entity
        startingGUIDParameterName - name of the parameter supplying the startingGUID
        startingElementTypeName - type name of the starting element's entity
        attachingElementGUID - unique id of the entity for the element that is being attached
        attachingGUIDParameterName - name of the parameter supplying the attachingGUID
        attachingElementTypeName - type name of the attaching element's entity
        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
        suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
        attachmentTypeGUID - unique identifier of type of the relationship to create
        attachmentTypeName - unique name of type of the relationship to create
        relationshipProperties - properties to add to the relationship or null if no properties to add
        effectiveFrom - the date when this element is active - null for active now
        effectiveTo - the date when this element becomes inactive - null for active until deleted
        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 relationship
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem adding the relationship to the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • multiLinkElementToElement

        public String multiLinkElementToElement​(String userId,
                                                String externalSourceGUID,
                                                String externalSourceName,
                                                String startingElementGUID,
                                                String startingGUIDParameterName,
                                                String startingElementTypeName,
                                                String attachingElementGUID,
                                                String attachingGUIDParameterName,
                                                String attachingElementTypeName,
                                                boolean forLineage,
                                                boolean forDuplicateProcessing,
                                                List<String> suppliedSupportedZones,
                                                String attachmentTypeGUID,
                                                String attachmentTypeName,
                                                InstanceProperties relationshipProperties,
                                                Date effectiveTime,
                                                String methodName)
                                         throws InvalidParameterException,
                                                PropertyServerException,
                                                UserNotAuthorizedException
        Creates a relationship between two elements and updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the link.
        Parameters:
        userId - userId of user making request
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        startingElementGUID - unique id for the starting element's entity
        startingGUIDParameterName - name of the parameter supplying the startingGUID
        startingElementTypeName - type name of the starting element's entity
        attachingElementGUID - unique id of the entity for the element that is being attached
        attachingGUIDParameterName - name of the parameter supplying the attachingGUID
        attachingElementTypeName - type name of the attaching element's entity
        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
        suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
        attachmentTypeGUID - unique identifier of type of the relationship to create
        attachmentTypeName - unique name of type of the relationship to create
        relationshipProperties - properties to add to the relationship or null if no properties to add
        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 relationship
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem adding the relationship to the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • updateElementToElementLink

        public void updateElementToElementLink​(String userId,
                                               String externalSourceGUID,
                                               String externalSourceName,
                                               String startingGUID,
                                               String startingGUIDParameterName,
                                               String startingElementTypeName,
                                               String attachingGUID,
                                               String attachingGUIDParameterName,
                                               String attachingElementTypeName,
                                               String attachmentTypeGUID,
                                               String attachmentTypeName,
                                               InstanceProperties relationshipProperties,
                                               String methodName)
                                        throws InvalidParameterException,
                                               PropertyServerException,
                                               UserNotAuthorizedException
        Updates a relationship between two elements and updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the update.
        Parameters:
        userId - userId of user making request
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        startingGUID - unique id for the starting element's entity
        startingGUIDParameterName - name of the parameter supplying the startingGUID
        startingElementTypeName - type name of the starting element's entity
        attachingGUID - unique id of the entity for the element that is being attached
        attachingGUIDParameterName - name of the parameter supplying the attachingGUID
        attachingElementTypeName - type name of the attaching element's entity
        attachmentTypeGUID - unique identifier of type of the relationship to create
        attachmentTypeName - unique name of type of the relationship to create
        relationshipProperties - properties to add to the relationship or null if no properties to add
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem adding the relationship to the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • updateElementToElementLink

        public void updateElementToElementLink​(String userId,
                                               String externalSourceGUID,
                                               String externalSourceName,
                                               String startingGUID,
                                               String startingGUIDParameterName,
                                               String startingElementTypeName,
                                               String attachingGUID,
                                               String attachingGUIDParameterName,
                                               String attachingElementTypeName,
                                               boolean forLineage,
                                               boolean forDuplicateProcessing,
                                               List<String> suppliedSupportedZones,
                                               String attachmentTypeGUID,
                                               String attachmentTypeName,
                                               boolean isMergeUpdate,
                                               InstanceProperties relationshipProperties,
                                               String methodName)
                                        throws InvalidParameterException,
                                               PropertyServerException,
                                               UserNotAuthorizedException
        Updates a relationship between two elements and updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the update.
        Parameters:
        userId - userId of user making request
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        startingGUID - unique id for the starting element's entity
        startingGUIDParameterName - name of the parameter supplying the startingGUID
        startingElementTypeName - type name of the starting element's entity
        attachingGUID - unique id of the entity for the element that is being attached
        attachingGUIDParameterName - name of the parameter supplying the attachingGUID
        attachingElementTypeName - type name of the attaching element's entity
        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
        suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
        attachmentTypeGUID - unique identifier of type of the relationship to create
        attachmentTypeName - unique name of type of the relationship to create
        isMergeUpdate - should the supplied properties be merged with existing properties (true) by replacing the just the properties with matching names, or should the entire properties of the instance be replaced?
        relationshipProperties - properties to add to the relationship or null if no properties to add
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem adding the relationship to the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • updateElementToElementLink

        public void updateElementToElementLink​(String userId,
                                               String externalSourceGUID,
                                               String externalSourceName,
                                               String relationshipGUID,
                                               String relationshipGUIDParameterName,
                                               String relationshipTypeName,
                                               boolean forLineage,
                                               boolean forDuplicateProcessing,
                                               boolean isMergeUpdate,
                                               Date effectiveFrom,
                                               Date effectiveTo,
                                               Map<String,​Object> relationshipProperties,
                                               String methodName)
                                        throws InvalidParameterException,
                                               PropertyServerException,
                                               UserNotAuthorizedException
        Updates a relationship between two elements and updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the update.
        Parameters:
        userId - userId of user making request
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        relationshipGUID - unique identifier of the relationship
        relationshipGUIDParameterName - name of the parameter supplying the relationshipGUID
        relationshipTypeName - name of the relationship type
        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
        isMergeUpdate - should the supplied properties be merged with existing properties (true) by replacing the just the properties with matching names, or should the entire properties of the instance be replaced?
        relationshipProperties - properties to add to the relationship or null if no properties to add
        effectiveFrom - the date when this element is active - null for active now
        effectiveTo - the date when this element becomes inactive - null for active until deleted
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem adding the relationship to the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • updateElementToElementLink

        public void updateElementToElementLink​(String userId,
                                               String externalSourceGUID,
                                               String externalSourceName,
                                               String relationshipGUID,
                                               String relationshipGUIDParameterName,
                                               String relationshipTypeName,
                                               boolean forLineage,
                                               boolean forDuplicateProcessing,
                                               List<String> suppliedSupportedZones,
                                               boolean isMergeUpdate,
                                               InstanceProperties relationshipProperties,
                                               String methodName)
                                        throws InvalidParameterException,
                                               PropertyServerException,
                                               UserNotAuthorizedException
        Updates a relationship between two elements and updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the update.
        Parameters:
        userId - userId of user making request
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        relationshipGUID - unique identifier of the relationship
        relationshipGUIDParameterName - name of the parameter supplying the relationshipGUID
        relationshipTypeName - name of the relationship type
        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
        suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
        isMergeUpdate - should the supplied properties be merged with existing properties (true) by replacing the just the properties with matching names, or should the entire properties of the instance be replaced?
        relationshipProperties - properties to add to the relationship or null if no properties to add
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem adding the relationship to the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • relinkElementToNewElement

        public void relinkElementToNewElement​(String userId,
                                              String externalSourceGUID,
                                              String externalSourceName,
                                              String startingGUID,
                                              String startingGUIDParameterName,
                                              String startingElementTypeName,
                                              boolean startAtEnd1,
                                              String newAttachingGUID,
                                              String newAttachingGUIDParameterName,
                                              String newAttachingElementTypeName,
                                              String attachmentTypeGUID,
                                              String attachmentTypeName,
                                              InstanceProperties relationshipProperties,
                                              String methodName)
                                       throws InvalidParameterException,
                                              PropertyServerException,
                                              UserNotAuthorizedException
        Delete the existing relationship between the starting element and another element then create a new relationship between the starting element element and the new attaching element. If successful this updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the relinking.
        Parameters:
        userId - userId of user making request
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        startingGUID - unique id for the starting element's entity
        startingGUIDParameterName - name of the parameter supplying the startingGUID
        startingElementTypeName - type name of the starting element's entity
        startAtEnd1 - is the starting element at end 1 of the relationship
        newAttachingGUID - unique id of the entity for the element that is being attached
        newAttachingGUIDParameterName - name of the parameter supplying the newAttachingGUID
        newAttachingElementTypeName - type name of the attaching element's entity
        attachmentTypeGUID - unique identifier of type of the relationship to create
        attachmentTypeName - unique name of type of the relationship to create
        relationshipProperties - properties to add to the relationship or null if no properties to add
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid; or the relationship to change is not obvious
        PropertyServerException - there is a problem adding the relationship to the repositories
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • relinkElementToNewElement

        public void relinkElementToNewElement​(String userId,
                                              String externalSourceGUID,
                                              String externalSourceName,
                                              String startingGUID,
                                              String startingGUIDParameterName,
                                              String startingElementTypeName,
                                              boolean startAtEnd1,
                                              String newAttachingGUID,
                                              String newAttachingGUIDParameterName,
                                              String newAttachingElementTypeName,
                                              boolean forLineage,
                                              boolean forDuplicateProcessing,
                                              List<String> suppliedSupportedZones,
                                              String attachmentTypeGUID,
                                              String attachmentTypeName,
                                              InstanceProperties relationshipProperties,
                                              String methodName)
                                       throws InvalidParameterException,
                                              PropertyServerException,
                                              UserNotAuthorizedException
        Deleted the existing relationship between the starting element and another element then create a new relationship between the starting element and the new attaching element. If successful this updates the LatestChange in each one's anchor entity (if they have one). Both elements must be visible to the user to allow the relinking.
        Parameters:
        userId - userId of user making request
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        startingGUID - unique id for the starting element's entity
        startingGUIDParameterName - name of the parameter supplying the startingGUID
        startingElementTypeName - type name of the starting element's entity
        startAtEnd1 - is the starting element at end 1 of the relationship
        newAttachingGUID - unique id of the entity for the element that is being attached
        newAttachingGUIDParameterName - name of the parameter supplying the newAttachingGUID
        newAttachingElementTypeName - type name of the attaching element's entity
        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
        suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
        attachmentTypeGUID - unique identifier of type of the relationship to create
        attachmentTypeName - unique name of type of the relationship to create
        relationshipProperties - properties to add to the relationship or null if no properties to add
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid; or the relationship to change is not obvious
        PropertyServerException - there is a problem adding the relationship to the repositories
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • unlinkElementFromElement

        public void unlinkElementFromElement​(String userId,
                                             boolean onlyCreatorPermitted,
                                             String externalSourceGUID,
                                             String externalSourceName,
                                             String startingGUID,
                                             String startingGUIDParameterName,
                                             String startingElementTypeName,
                                             String attachingGUID,
                                             String attachingGUIDParameterName,
                                             String attachingElementTypeGUID,
                                             String attachingElementTypeName,
                                             boolean forLineage,
                                             boolean forDuplicateProcessing,
                                             String attachmentTypeGUID,
                                             String attachmentTypeName,
                                             Date effectiveTime,
                                             String methodName)
                                      throws InvalidParameterException,
                                             PropertyServerException,
                                             UserNotAuthorizedException
        Removes a relationship between two specified elements. If after the relationship is deleted, one of the ends has now lost it's anchor, then that entity is deleted. Anchored entities should not be left unanchored. This can cause a cascading effect if the anchored elements are organized in a hierarchy, such as a schema or a comment conversation.
        Parameters:
        userId - userId of user making request
        onlyCreatorPermitted - operation only permitted if the userId was the same one that created the relationship
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        startingGUID - unique id for the starting element's entity
        startingGUIDParameterName - name of the parameter supplying the startingGUID
        startingElementTypeName - type name of the starting element's entity
        attachingGUID - unique id of the entity for the element that is being attached
        attachingGUIDParameterName - name of the parameter supplying the attachingGUID
        attachingElementTypeGUID - type identifier of the attaching element's entity
        attachingElementTypeName - type name of the attaching element's entity
        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
        attachmentTypeGUID - unique identifier of type of the relationship to create
        attachmentTypeName - unique name of type of the relationship to create
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem updating relationship in the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • unlinkElementFromElement

        public void unlinkElementFromElement​(String userId,
                                             boolean onlyCreatorPermitted,
                                             String externalSourceGUID,
                                             String externalSourceName,
                                             String startingGUID,
                                             String startingGUIDParameterName,
                                             String startingElementTypeName,
                                             String attachedGUID,
                                             String attachedGUIDParameterName,
                                             String attachedElementTypeGUID,
                                             String attachedElementTypeName,
                                             boolean forLineage,
                                             boolean forDuplicateProcessing,
                                             List<String> suppliedSupportedZones,
                                             String attachmentTypeGUID,
                                             String attachmentTypeName,
                                             Date effectiveTime,
                                             String methodName)
                                      throws InvalidParameterException,
                                             PropertyServerException,
                                             UserNotAuthorizedException
        Removes a relationship between two specified elements. If after the relationship is deleted, one of the ends has now lost it's anchor, then that entity is deleted. Anchored entities should not be left unanchored. This can cause a cascading effect if the anchored elements are organized in a hierarchy, such as a schema or a comment conversation.
        Parameters:
        userId - userId of user making request
        onlyCreatorPermitted - operation only permitted if the userId was the same one that created the relationship
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        startingGUID - unique id for the starting element's entity
        startingGUIDParameterName - name of the parameter supplying the startingGUID
        startingElementTypeName - type name of the starting element's entity
        attachedGUID - unique id of the entity for the element that is being detached
        attachedGUIDParameterName - name of the parameter supplying the attachedGUID
        attachedElementTypeGUID - type GUID of the attaching element's entity
        attachedElementTypeName - type name of the attaching element's entity
        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
        suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
        attachmentTypeGUID - unique identifier of type of the relationship to remove
        attachmentTypeName - unique name of type of the relationship to remove
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem updating relationship in the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • unlinkElementFromElement

        public void unlinkElementFromElement​(String userId,
                                             boolean onlyCreatorPermitted,
                                             String externalSourceGUID,
                                             String externalSourceName,
                                             String startingGUID,
                                             String startingGUIDParameterName,
                                             String startingElementTypeName,
                                             String attachedGUID,
                                             String attachedGUIDParameterName,
                                             String attachedElementTypeGUID,
                                             String attachedElementTypeName,
                                             boolean forLineage,
                                             boolean forDuplicateProcessing,
                                             String attachmentTypeName,
                                             Relationship relationship,
                                             String methodName)
                                      throws InvalidParameterException,
                                             PropertyServerException,
                                             UserNotAuthorizedException
        Removes a relationship between two specified elements. If after the relationship is deleted, one of the ends has now lost it's anchor, then that entity is deleted. Anchored entities should not be left unanchored. This can cause a cascading effect if the anchored elements are organized in a hierarchy, such as a schema or a comment conversation.
        Parameters:
        userId - userId of user making request
        onlyCreatorPermitted - operation only permitted if the userId was the same one that created the relationship
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        startingGUID - unique id for the starting element's entity
        startingGUIDParameterName - name of the parameter supplying the startingGUID
        startingElementTypeName - type name of the starting element's entity
        attachedGUID - unique id of the entity for the element that is being detached
        attachedGUIDParameterName - name of the parameter supplying the attachedGUID
        attachedElementTypeGUID - type GUID of the attaching element's entity
        attachedElementTypeName - type name of the attaching element's entity
        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
        attachmentTypeName - unique name of type of the relationship to remove
        relationship - specific relationship to remove
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem updating relationship in the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • unlinkElementFromElement

        public void unlinkElementFromElement​(String userId,
                                             boolean onlyCreatorPermitted,
                                             String externalSourceGUID,
                                             String externalSourceName,
                                             String startingGUID,
                                             String startingGUIDParameterName,
                                             String startingElementTypeName,
                                             String attachedGUID,
                                             String attachedGUIDParameterName,
                                             String attachedElementTypeGUID,
                                             String attachedElementTypeName,
                                             boolean forLineage,
                                             boolean forDuplicateProcessing,
                                             List<String> suppliedSupportedZones,
                                             String attachmentTypeName,
                                             Relationship relationship,
                                             String methodName)
                                      throws InvalidParameterException,
                                             PropertyServerException,
                                             UserNotAuthorizedException
        Removes a relationship between two specified elements. If after the relationship is deleted, one of the ends has now lost it's anchor, then that entity is deleted. Anchored entities should not be left unanchored. This can cause a cascading effect if the anchored elements are organized in a hierarchy, such as a schema or a comment conversation.
        Parameters:
        userId - userId of user making request
        onlyCreatorPermitted - operation only permitted if the userId was the same one that created the relationship
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        startingGUID - unique id for the starting element's entity
        startingGUIDParameterName - name of the parameter supplying the startingGUID
        startingElementTypeName - type name of the starting element's entity
        attachedGUID - unique id of the entity for the element that is being detached
        attachedGUIDParameterName - name of the parameter supplying the attachedGUID
        attachedElementTypeGUID - type GUID of the attaching element's entity
        attachedElementTypeName - type name of the attaching element's entity
        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
        suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
        attachmentTypeName - unique name of type of the relationship to remove
        relationship - specific relationship to remove
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem updating relationship in the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • unlinkAllElements

        public void unlinkAllElements​(String userId,
                                      boolean onlyCreatorPermitted,
                                      String externalSourceGUID,
                                      String externalSourceName,
                                      String startingGUID,
                                      String startingGUIDParameterName,
                                      String startingElementTypeName,
                                      boolean forLineage,
                                      boolean forDuplicateProcessing,
                                      List<String> suppliedSupportedZones,
                                      String attachmentTypeGUID,
                                      String attachmentTypeName,
                                      Date effectiveTime,
                                      String methodName)
                               throws InvalidParameterException,
                                      PropertyServerException,
                                      UserNotAuthorizedException
        Calls unlinkElementFromElement for all relationships of a certain type emanating from the requested element.
        Parameters:
        userId - userId of user making request
        onlyCreatorPermitted - operation only permitted if the userId was the same one that created the relationship
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        startingGUID - unique id for the starting element's entity
        startingGUIDParameterName - name of the parameter supplying the startingGUID
        startingElementTypeName - type name of the starting element's entity
        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
        suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
        attachmentTypeGUID - unique identifier of type of the relationship to create
        attachmentTypeName - unique name of type of the relationship to create
        effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
        methodName - calling method
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem updating the relationships in the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • unlinkConnectedElement

        public String unlinkConnectedElement​(String userId,
                                             boolean onlyCreatorPermitted,
                                             String externalSourceGUID,
                                             String externalSourceName,
                                             String startingGUID,
                                             String startingGUIDParameterName,
                                             String startingElementTypeName,
                                             boolean forLineage,
                                             boolean forDuplicateProcessing,
                                             List<String> suppliedSupportedZones,
                                             String attachmentTypeGUID,
                                             String attachmentTypeName,
                                             String detachedElementTypeName,
                                             Date effectiveTime,
                                             String methodName)
                                      throws InvalidParameterException,
                                             PropertyServerException,
                                             UserNotAuthorizedException
        Removes the relationship of a specific type attached to an entity. If the connected entity is anchored to the starting entity it is deleted (and linked dependent elements). There should be only one relationship. If there are more, an error is thrown.
        Parameters:
        userId - userId of user making request
        onlyCreatorPermitted - operation only permitted if the userId was the same one that created the relationship
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        startingGUID - unique id for the starting element's entity
        startingGUIDParameterName - name of the parameter supplying the startingGUID
        startingElementTypeName - type name of the starting element's entity
        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
        suppliedSupportedZones - list of zones that any asset must be a member of at least one to be visible
        attachmentTypeGUID - unique identifier of type of the relationship to create
        attachmentTypeName - unique name of type of the relationship to create
        detachedElementTypeName - name of type of element that will be detached
        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 entity that has been detached
        Throws:
        InvalidParameterException - one of the parameters is null or invalid.
        PropertyServerException - there is a problem updating the relationship in the repositories.
        UserNotAuthorizedException - the requesting user is not authorized to issue this request.
      • getEffectiveTime

        public Date getEffectiveTime​(InstanceProperties properties)
        Derive the effective time value to use when retrieving relationships. This is based on the effectivity values from an element's properties. If there are no properties then effectively there is no effective time.
        Parameters:
        properties - properties from element
        Returns:
        single date to use on retrieve commands - null means all time
      • getEffectiveTime

        public Date getEffectiveTime​(Date effectiveFromTime,
                                     Date effectiveToTime)
        Derive the effective time value to use when retrieving relationships. This is based on the effectivity values from an element's properties.
        Parameters:
        effectiveFromTime - start date/time for the element
        effectiveToTime - end date/time for the
        Returns:
        single date to use on retrieve commands - null means all time
      • verifyExternalSourceIdentity

        public void verifyExternalSourceIdentity​(String userId,
                                                 String externalSourceGUID,
                                                 String externalSourceName,
                                                 boolean forLineage,
                                                 boolean forDuplicateProcessing,
                                                 Date effectiveTime,
                                                 String methodName)
                                          throws InvalidParameterException,
                                                 UserNotAuthorizedException,
                                                 PropertyServerException
        Verify that the integrator identities are either null or refer to a valid software server capability. These values will be used to set up the
        Parameters:
        userId - calling user
        externalSourceGUID - guid of the software server capability entity that represented the external source - null for local
        externalSourceName - name of the software server capability entity that represented the external source
        forLineage - is this request part of a lineage service
        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
        Throws:
        InvalidParameterException - the integrator GUID or name does not match what is in the metadata repository
        PropertyServerException - problem accessing repositories
        UserNotAuthorizedException - security access problem