All Implemented Interfaces:
ValidValuesExchangeInterface, ExternalIdentifierManagerInterface

public class ValidValuesExchangeClient extends ExchangeClientBase implements ValidValuesExchangeInterface
ValidValuesExchangeClient provides the API operations to create and maintain lists of valid value definitions grouped into a valid value set. Both valid value definitions and valid value sets have the same attributes and so inherit from ValidValue where all the attributes are defined. A set is just grouping of valid values. Valid value definitions and set can be nested many times in other valid value sets.
  • Constructor Details

    • ValidValuesExchangeClient

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

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

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

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

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

    • createValidValueSet

      public String createValidValueSet(String userId, String assetManagerGUID, String assetManagerName, ExternalIdentifierProperties externalIdentifierProperties, ValidValueProperties validValueProperties, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create a new valid value set. This just creates the Set itself. Members are added either as they are created, or they can be attached to a set after they are created.
      Specified by:
      createValidValueSet in interface ValidValuesExchangeInterface
      Parameters:
      userId - calling user
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      externalIdentifierProperties - optional properties used to define an external identifier
      validValueProperties - properties to store
      effectiveTime - optional date for effective time of the query. Null means any effective time
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Returns:
      unique identifier for the new set
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.
    • createValidValueDefinition

      public String createValidValueDefinition(String userId, String assetManagerGUID, String assetManagerName, String setGUID, ExternalIdentifierProperties externalIdentifierProperties, ValidValueProperties validValueProperties, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create a new valid value definition.
      Specified by:
      createValidValueDefinition in interface ValidValuesExchangeInterface
      Parameters:
      userId - calling user.
      setGUID - unique identifier of the set to attach this to.
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      externalIdentifierProperties - optional properties used to define an external identifier
      validValueProperties - properties to store
      effectiveTime - optional date for effective time of the query. Null means any effective time
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Returns:
      unique identifier for the new definition
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.
    • updateValidValue

      public void updateValidValue(String userId, String assetManagerGUID, String assetManagerName, String validValueGUID, String validValueExternalIdentifier, boolean isMergeUpdate, ValidValueProperties validValueProperties, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the properties of the valid value. All properties are updated. If only changing some if the properties, retrieve the current values from the repository and pass existing values back on this call if they are not to change.
      Specified by:
      updateValidValue in interface ValidValuesExchangeInterface
      Parameters:
      userId - calling user.
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      validValueGUID - unique identifier of the valid value.
      validValueExternalIdentifier - unique identifier of the valid value in the external asset manager
      isMergeUpdate - should the new properties be merged with existing properties (true) or completely replace them (false)?
      validValueProperties - properties to store
      effectiveTime - optional date for effective time of the query. Null means any effective time
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.
    • removeValidValue

      public void removeValidValue(String userId, String assetManagerGUID, String assetManagerName, String validValueGUID, String validValueExternalIdentifier, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Remove the valid value form the repository. All links to it are deleted too.
      Specified by:
      removeValidValue in interface ValidValuesExchangeInterface
      Parameters:
      userId - calling user
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      validValueGUID - unique identifier of the valid value.
      validValueExternalIdentifier - unique identifier of the valid value in the external asset manager
      effectiveTime - optional date for effective time of the query. Null means any effective time
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.
    • attachValidValueToSet

      public void attachValidValueToSet(String userId, String assetManagerGUID, String assetManagerName, String setGUID, String validValueGUID, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create a link between a valid value set or definition and a set. This means the valid value is a member of the set.
      Specified by:
      attachValidValueToSet in interface ValidValuesExchangeInterface
      Parameters:
      userId - calling user.
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      setGUID - unique identifier of the set.
      validValueGUID - unique identifier of the valid value to add to the set.
      effectiveTime - optional date for effective time of the query. Null means any effective time
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.
    • attachValidValueToSet

      public void attachValidValueToSet(String userId, String assetManagerGUID, String assetManagerName, String setGUID, String validValueGUID, ValidValueMembershipProperties properties, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create a link between a valid value set or definition and a set. This means the valid value is a member of the set.
      Specified by:
      attachValidValueToSet in interface ValidValuesExchangeInterface
      Parameters:
      userId - calling user.
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      setGUID - unique identifier of the set.
      validValueGUID - unique identifier of the valid value to add to the set.
      properties - is this the default value - used when creating a list of valid values
      effectiveTime - optional date for effective time of the query. Null means any effective time
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.
    • detachValidValueFromSet

      public void detachValidValueFromSet(String userId, String assetManagerGUID, String assetManagerName, String setGUID, String validValueGUID, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Remove the link between a valid value and a set it is a member of.
      Specified by:
      detachValidValueFromSet in interface ValidValuesExchangeInterface
      Parameters:
      userId - calling user
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      setGUID - owning set
      validValueGUID - unique identifier of the member to be removed.
      effectiveTime - optional date for effective time of the query. Null means any effective time
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.
    • assignReferenceValueToItem

      public void assignReferenceValueToItem(String userId, String assetManagerGUID, String assetManagerName, String validValueGUID, String referenceableGUID, ReferenceValueAssignmentProperties properties, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Link a valid value as a reference value to a referencable to act as a tag/classification to help with locating and grouping the referenceable.
      Specified by:
      assignReferenceValueToItem in interface ValidValuesExchangeInterface
      Parameters:
      userId - calling user.
      assetManagerGUID - unique identifier of software capability representing the caller
      assetManagerName - unique name of software capability representing the caller
      validValueGUID - unique identifier of the valid value.
      referenceableGUID - unique identifier of the element to link to.
      properties - details of the relationship
      effectiveTime - optional date for effective time of the query. Null means any effective time
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.
    • unassignReferenceValueFromItem

      public void unassignReferenceValueFromItem(String userId, String assetManagerGUID, String assetManagerName, String validValueGUID, String referenceableGUID, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Remove the reference value link between a valid value and a referenceable (item).
      Specified by:
      unassignReferenceValueFromItem in interface ValidValuesExchangeInterface
      Parameters:
      userId - calling user.
      assetManagerGUID - unique identifier of software capability representing the caller
      assetManagerName - unique name of software capability representing the caller
      validValueGUID - unique identifier of the valid value.
      referenceableGUID - unique identifier of the element to remove the link from.
      effectiveTime - optional date for effective time of the query. Null means any effective time
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.
    • getValidValueByGUID

      public ValidValueElement getValidValueByGUID(String userId, String assetManagerGUID, String assetManagerName, String validValueGUID, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve a specific valid value from the repository.
      Specified by:
      getValidValueByGUID in interface ValidValuesExchangeInterface
      Parameters:
      userId - calling user
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      validValueGUID - unique identifier of the valid value.
      effectiveTime - optional date for effective time of the query. Null means any effective time
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Returns:
      Valid value bean
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.
    • getValidValueByName

      public List<ValidValueElement> getValidValueByName(String userId, String assetManagerGUID, String assetManagerName, String validValueName, int startFrom, int pageSize, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve a specific valid value from the repository. Duplicates may be returned if multiple valid values have been assigned the same qualified name.
      Specified by:
      getValidValueByName in interface ValidValuesExchangeInterface
      Parameters:
      userId - calling user
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      validValueName - qualified name of the valid value.
      startFrom - starting element (used in paging through large result sets)
      pageSize - maximum number of results to return
      effectiveTime - optional date for effective time of the query. Null means any effective time
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Returns:
      Valid value beans
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.
    • findValidValues

      public List<ValidValueElement> findValidValues(String userId, String assetManagerGUID, String assetManagerName, String searchString, int startFrom, int pageSize, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Locate valid values that match the search string. It considers the names, description, scope, usage and preferred value.
      Specified by:
      findValidValues in interface ValidValuesExchangeInterface
      Parameters:
      userId - calling user
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      searchString - string value to look for - may contain RegEx characters.
      startFrom - paging starting point
      pageSize - maximum number of return values.
      effectiveTime - optional date for effective time of the query. Null means any effective time
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Returns:
      list of valid value beans
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.
    • getValidValueSetMembers

      public List<ValidValueMember> getValidValueSetMembers(String userId, String assetManagerGUID, String assetManagerName, String validValueSetGUID, int startFrom, int pageSize, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Page through the members of a valid value set.
      Specified by:
      getValidValueSetMembers in interface ValidValuesExchangeInterface
      Parameters:
      userId - calling user.
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      validValueSetGUID - unique identifier of the valid value set.
      startFrom - paging starting point
      pageSize - maximum number of return values.
      effectiveTime - optional date for effective time of the query. Null means any effective time
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Returns:
      list of valid value beans
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.
    • getSetsForValidValue

      public List<ValidValueElement> getSetsForValidValue(String userId, String assetManagerGUID, String assetManagerName, String validValueGUID, int startFrom, int pageSize, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Page through the list of valid value sets that a valid value definition/set belongs to.
      Specified by:
      getSetsForValidValue in interface ValidValuesExchangeInterface
      Parameters:
      userId - calling user.
      assetManagerGUID - unique identifier of software server capability representing the caller
      assetManagerName - unique name of software server capability representing the caller
      validValueGUID - unique identifier of valid value to query
      startFrom - paging starting point
      pageSize - maximum number of return values.
      effectiveTime - optional date for effective time of the query. Null means any effective time
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Returns:
      list of valid value beans
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.
    • getReferenceValueAssignedItems

      public List<ReferenceValueAssignmentItemElement> getReferenceValueAssignedItems(String userId, String assetManagerGUID, String assetManagerName, String validValueGUID, int startFrom, int pageSize, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Page through the list of referenceables that have this valid value as a reference value.
      Specified by:
      getReferenceValueAssignedItems in interface ValidValuesExchangeInterface
      Parameters:
      userId - calling user
      assetManagerGUID - unique identifier of software capability representing the caller
      assetManagerName - unique name of software capability representing the caller
      validValueGUID - unique identifier of valid value to query
      startFrom - paging starting point
      pageSize - maximum number of return values.
      effectiveTime - optional date for effective time of the query. Null means any effective time
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Returns:
      list of referenceable beans
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.
    • getReferenceValueAssignments

      public List<ReferenceValueAssignmentDefinitionElement> getReferenceValueAssignments(String userId, String assetManagerGUID, String assetManagerName, String referenceableGUID, int startFrom, int pageSize, Date effectiveTime, boolean forLineage, boolean forDuplicateProcessing) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Page through the list of assigned reference values for a referenceable.
      Specified by:
      getReferenceValueAssignments in interface ValidValuesExchangeInterface
      Parameters:
      userId - calling user
      assetManagerGUID - unique identifier of software capability representing the caller
      assetManagerName - unique name of software capability representing the caller
      referenceableGUID - unique identifier of assigned item
      startFrom - paging starting point
      pageSize - maximum number of return values.
      effectiveTime - optional date for effective time of the query. Null means any effective time
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      Returns:
      list of valid value beans
      Throws:
      InvalidParameterException - one of the parameters is invalid.
      UserNotAuthorizedException - the user is not authorized to make this request.
      PropertyServerException - the repository is not available or not working properly.