Class SchemaTypeHandler<B>


public class SchemaTypeHandler<B> extends ReferenceableHandler<B>
SchemaTypeHandler manages SchemaType objects. It runs server-side in the OMAG Server Platform and retrieves SchemaElement entities through the OMRSRepositoryConnector. This handler does not support effectivity dates but probably should.
  • Constructor Details

    • SchemaTypeHandler

      public SchemaTypeHandler(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 with information needed to work with B objects.
      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 B instances from.
      defaultZones - list of zones that the access service should set in all new B instances.
      publishZones - list of zones that the access service sets up in published B instances.
      auditLog - destination for audit log events.
  • Method Details

    • addSchemaType

      public String addSchemaType(String userId, String externalSourceGUID, String externalSourceName, SchemaTypeBuilder schemaTypeBuilder, Date effectiveFrom, Date effectiveTo, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Store a new schema type (and optional attributes) in the repository and return its unique identifier (GUID).
      Parameters:
      userId - calling userId
      externalSourceGUID - unique identifier of software capability representing the caller - null for local cohort
      externalSourceName - unique name of software capability representing the caller
      schemaTypeBuilder - properties for new schemaType
      effectiveFrom - starting time for this relationship (null for all time)
      effectiveTo - ending time for this relationship (null for all time)
      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 schemaType in the repository.
      Throws:
      InvalidParameterException - the bean properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • addSchemaType

      public String addSchemaType(String userId, String externalSourceGUID, String externalSourceName, String qualifiedName, String displayName, String description, String versionNumber, boolean isDeprecated, String author, String usage, String encodingStandard, String namespace, Map<String,String> additionalProperties, String suppliedTypeName, Map<String,Object> extendedProperties, Date effectiveFrom, Date effectiveTo, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Create a schema type.
      Parameters:
      userId - calling userId
      externalSourceGUID - unique identifier of software capability representing the caller - null for local cohort
      externalSourceName - unique name of software capability representing the caller
      qualifiedName - unique name of schema type itself
      displayName - new value for the display name.
      description - description of the schema type.
      versionNumber - version of the schema type.
      isDeprecated - is the schema type deprecated
      author - name of the author
      usage - guidance on how the schema should be used.
      encodingStandard - format of the schema.
      namespace - namespace where the schema is defined.
      additionalProperties - additional properties
      suppliedTypeName - unique name of schema sub type
      extendedProperties - properties from the subtype.
      effectiveFrom - starting time for this relationship (null for all time)
      effectiveTo - ending time for this relationship (null for all time)
      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 schemaType in the repository.
      Throws:
      InvalidParameterException - the bean properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • addPrimitiveSchemaType

      public String addPrimitiveSchemaType(String userId, String externalSourceGUID, String externalSourceName, String qualifiedName, String displayName, String description, String versionNumber, boolean isDeprecated, String author, String usage, String encodingStandard, String namespace, String dataType, String defaultValue, Map<String,String> additionalProperties, String suppliedTypeName, Map<String,Object> extendedProperties, Date effectiveFrom, Date effectiveTo, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Create a primitive schema type.
      Parameters:
      userId - calling userId
      externalSourceGUID - unique identifier of software capability representing the caller - null for local cohort
      externalSourceName - unique name of software capability representing the caller
      qualifiedName - unique name of schema type itself
      displayName - new value for the display name.
      description - description of the schema type.
      versionNumber - version of the schema type.
      isDeprecated - is the schema type deprecated
      author - name of the author
      usage - guidance on how the schema should be used.
      encodingStandard - format of the schema.
      namespace - namespace where the schema is defined.
      dataType - string name
      defaultValue - string value
      additionalProperties - additional properties
      suppliedTypeName - unique name of schema sub type
      extendedProperties - properties from the subtype.
      effectiveFrom - starting time for this relationship (null for all time)
      effectiveTo - ending time for this relationship (null for all time)
      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 schemaType in the repository.
      Throws:
      InvalidParameterException - the bean properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • addLiteralSchemaType

      public String addLiteralSchemaType(String userId, String externalSourceGUID, String externalSourceName, String qualifiedName, String displayName, String description, String versionNumber, boolean isDeprecated, String author, String usage, String encodingStandard, String namespace, String dataType, String fixedValue, Map<String,String> additionalProperties, String suppliedTypeName, Map<String,Object> extendedProperties, Date effectiveFrom, Date effectiveTo, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Create a literal schema type.
      Parameters:
      userId - calling userId
      externalSourceGUID - unique identifier of software capability representing the caller - null for local cohort
      externalSourceName - unique name of software capability representing the caller
      qualifiedName - unique name of schema type itself
      displayName - new value for the display name.
      description - description of the schema type.
      versionNumber - version of the schema type.
      isDeprecated - is the schema type deprecated
      author - name of the author
      usage - guidance on how the schema should be used.
      encodingStandard - format of the schema.
      namespace - namespace where the schema is defined.
      dataType - string name
      fixedValue - string value
      additionalProperties - additional properties
      suppliedTypeName - unique name of schema sub type
      extendedProperties - properties from the subtype.
      effectiveFrom - starting time for this relationship (null for all time)
      effectiveTo - ending time for this relationship (null for all time)
      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 schemaType in the repository.
      Throws:
      InvalidParameterException - the bean properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • addEnumSchemaType

      public String addEnumSchemaType(String userId, String externalSourceGUID, String externalSourceName, String qualifiedName, String displayName, String description, String versionNumber, boolean isDeprecated, String author, String usage, String encodingStandard, String namespace, String dataType, String defaultValue, String validValuesSetGUID, Map<String,String> additionalProperties, String suppliedTypeName, Map<String,Object> extendedProperties, Date effectiveFrom, Date effectiveTo, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Create an enum schema type.
      Parameters:
      userId - calling userId
      externalSourceGUID - unique identifier of software capability representing the caller - null for local cohort
      externalSourceName - unique name of software capability representing the caller
      qualifiedName - unique name of schema type itself
      displayName - new value for the display name.
      description - description of the schema type.
      versionNumber - version of the schema type.
      isDeprecated - is the schema type deprecated
      author - name of the author
      usage - guidance on how the schema should be used.
      encodingStandard - format of the schema.
      namespace - namespace where the schema is defined.
      dataType - string name
      defaultValue - string value
      validValuesSetGUID - unique identifier of the valid values set to used
      additionalProperties - additional properties
      suppliedTypeName - unique name of schema sub type
      extendedProperties - properties from the subtype.
      effectiveFrom - starting time for this relationship (null for all time)
      effectiveTo - ending time for this relationship (null for all time)
      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 schemaType in the repository.
      Throws:
      InvalidParameterException - the bean properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • addStructSchemaType

      public String addStructSchemaType(String userId, String externalSourceGUID, String externalSourceName, String qualifiedName, String displayName, String description, String versionNumber, boolean isDeprecated, String author, String usage, String encodingStandard, String namespace, Map<String,String> additionalProperties, String suppliedTypeName, Map<String,Object> extendedProperties, Date effectiveFrom, Date effectiveTo, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Create a struct schema type.
      Parameters:
      userId - calling userId
      externalSourceGUID - unique identifier of software capability representing the caller - null for local cohort
      externalSourceName - unique name of software capability representing the caller
      qualifiedName - unique name of schema type itself
      displayName - new value for the display name.
      description - description of the schema type.
      versionNumber - version of the schema type.
      isDeprecated - is the schema type deprecated
      author - name of the author
      usage - guidance on how the schema should be used.
      encodingStandard - format of the schema.
      namespace - namespace where the schema is defined.
      additionalProperties - additional properties
      suppliedTypeName - unique name of schema sub type
      extendedProperties - properties from the subtype.
      effectiveFrom - starting time for this relationship (null for all time)
      effectiveTo - ending time for this relationship (null for all time)
      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 schemaType in the repository.
      Throws:
      InvalidParameterException - the bean properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • addSchemaTypeChoice

      public String addSchemaTypeChoice(String userId, String externalSourceGUID, String externalSourceName, String qualifiedName, String displayName, String description, String versionNumber, boolean isDeprecated, String author, String usage, String encodingStandard, String namespace, Map<String,String> additionalProperties, String suppliedTypeName, Map<String,Object> extendedProperties, Date effectiveFrom, Date effectiveTo, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Create a schema type choice.
      Parameters:
      userId - calling userId
      externalSourceGUID - unique identifier of software capability representing the caller - null for local cohort
      externalSourceName - unique name of software capability representing the caller
      qualifiedName - unique name of schema type itself
      displayName - new value for the display name.
      description - description of the schema type.
      versionNumber - version of the schema type.
      isDeprecated - is the schema type deprecated
      author - name of the author
      usage - guidance on how the schema should be used.
      encodingStandard - format of the schema.
      namespace - namespace where the schema is defined.
      additionalProperties - additional properties
      suppliedTypeName - unique name of schema sub type
      extendedProperties - properties from the subtype.
      effectiveFrom - starting time for this relationship (null for all time)
      effectiveTo - ending time for this relationship (null for all time)
      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 schemaType in the repository.
      Throws:
      InvalidParameterException - the bean properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • addMapSchemaType

      public String addMapSchemaType(String userId, String externalSourceGUID, String externalSourceName, String qualifiedName, String displayName, String description, String versionNumber, boolean isDeprecated, String author, String usage, String encodingStandard, String namespace, String mapFromSchemaTypeGUID, String mapToSchemaTypeGUID, Map<String,String> additionalProperties, String suppliedTypeName, Map<String,Object> extendedProperties, Date effectiveFrom, Date effectiveTo, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Create a map schema type.
      Parameters:
      userId - calling userId
      externalSourceGUID - unique identifier of software capability representing the caller - null for local cohort
      externalSourceName - unique name of software capability representing the caller
      qualifiedName - unique name of schema type itself
      displayName - new value for the display name.
      description - description of the schema type.
      versionNumber - version of the schema type.
      isDeprecated - is the schema type deprecated
      author - name of the author
      usage - guidance on how the schema should be used.
      encodingStandard - format of the schema.
      namespace - namespace where the schema is defined.
      mapFromSchemaTypeGUID - unique identifier of the domain of the map
      mapToSchemaTypeGUID - unique identifier of the range of the map
      additionalProperties - additional properties
      suppliedTypeName - unique name of schema sub type
      extendedProperties - properties from the subtype.
      effectiveFrom - starting time for this relationship (null for all time)
      effectiveTo - ending time for this relationship (null for all time)
      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 schemaType in the repository.
      Throws:
      InvalidParameterException - the bean properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • createSchemaTypeFromTemplate

      public String createSchemaTypeFromTemplate(String userId, String externalSourceGUID, String externalSourceName, String templateGUID, String qualifiedName, String displayName, String description, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create a new metadata element to represent a schema type using an existing metadata element as a template. The template defines additional classifications and relationships that should be added to the new schema type.
      Parameters:
      userId - calling user
      externalSourceGUID - unique identifier of software capability representing the caller
      externalSourceName - unique name of software capability representing the caller
      templateGUID - unique identifier of the metadata element to copy
      qualifiedName - unique name for the schema type - used in other configuration
      displayName - short display name for the schema type
      description - description of the schema type
      methodName - calling method
      Returns:
      unique identifier of the new metadata element
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - the user is not authorized to issue this request
      PropertyServerException - there is a problem reported in the open metadata server(s)
    • updateSchemaType

      public void updateSchemaType(String userId, String externalSourceGUID, String externalSourceName, String existingSchemaTypeGUID, String existingSchemaTypeGUIDParameterName, SchemaTypeBuilder builder, boolean isMergeUpdate, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Update a stored schemaType. Note - this only updates the main schema - it does not travel through the nested schemas.
      Parameters:
      userId - userId
      externalSourceGUID - unique identifier of software capability representing the caller
      externalSourceName - unique name of software capability representing the caller
      existingSchemaTypeGUID - unique identifier of the existing schemaType entity
      existingSchemaTypeGUIDParameterName - name of parameter for existingSchemaTypeGUID
      builder - new schemaType values
      isMergeUpdate - should the new properties be merged with existing properties (true) or completely replace them (false)?
      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 schemaType bean properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • updateSchemaType

      public void updateSchemaType(String userId, String externalSourceGUID, String externalSourceName, String schemaTypeGUID, String qualifiedName, String displayName, String description, String versionNumber, boolean isDeprecated, String author, String usage, String encodingStandard, String namespace, Map<String,String> additionalProperties, String suppliedTypeName, Map<String,Object> extendedProperties, Date effectiveFrom, Date effectiveTo, boolean isMergeUpdate, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Create a schema type.
      Parameters:
      userId - calling userId
      externalSourceGUID - unique identifier of software capability representing the caller - null for local cohort
      externalSourceName - unique name of software capability representing the caller
      schemaTypeGUID - unique identifier of the metadata element to update
      qualifiedName - unique name of schema type itself
      displayName - new value for the display name.
      description - description of the schema type.
      versionNumber - version of the schema type.
      isDeprecated - is the schema type deprecated
      author - name of the author
      usage - guidance on how the schema should be used.
      encodingStandard - format of the schema.
      namespace - namespace where the schema is defined.
      additionalProperties - additional properties
      suppliedTypeName - unique name of schema sub type
      extendedProperties - properties from the subtype.
      isMergeUpdate - should the new properties be merged with existing properties (true) or completely replace them (false)?
      effectiveFrom - starting time for this relationship (null for all time)
      effectiveTo - ending time for this relationship (null for all time)
      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 bean properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • removeSchemaType

      public void removeSchemaType(String userId, String externalSourceGUID, String externalSourceName, String schemaTypeGUID, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Remove the requested schemaType if it is no longer connected to any other entity.
      Parameters:
      userId - calling user
      externalSourceGUID - unique identifier of software capability representing the caller - null for local cohort
      externalSourceName - unique name of software capability representing the caller
      schemaTypeGUID - object to delete
      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 entity guid is not known
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • getSchemaTypeForAsset

      public B getSchemaTypeForAsset(String userId, String assetGUID, String assetGUIDParameterName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Is there an attached schema for the Asset?
      Parameters:
      userId - calling user
      assetGUID - identifier for the entity that the object is attached to
      assetGUIDParameterName - name of parameter for assetGUID
      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:
      schemaType object or null
      Throws:
      InvalidParameterException - the schemaType bean properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • getSchemaTypeForPort

      public B getSchemaTypeForPort(String userId, String portGUID, String portGUIDParameterName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Is there an attached schema for the Port?
      Parameters:
      userId - calling user
      portGUID - identifier for the entity that the object is attached to
      portGUIDParameterName - name of parameter for portGUID
      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:
      schemaType object or null
      Throws:
      InvalidParameterException - the schemaType bean properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • getSchemaTypeForParent

      public B getSchemaTypeForParent(String userId, String parentGUID, String parentGUIDParameterName, String parentTypeName, String relationshipTypeGUID, String relationshipTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Is there an attached schema for the parent entity? This is either an asset or a port entity. This method should not be used to get the schema type for a schema attribute.
      Parameters:
      userId - calling user
      parentGUID - identifier for the entity that the object is attached to
      parentGUIDParameterName - parameter supplying parentGUID
      parentTypeName - type name of anchor
      relationshipTypeGUID - unique identifier of the relationship type to search along
      relationshipTypeName - unique name of the relationship type to search along
      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:
      schemaType object or null
      Throws:
      InvalidParameterException - the schemaType bean properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • setupSchemaTypeParent

      public void setupSchemaTypeParent(String userId, String externalSourceGUID, String externalSourceName, String schemaTypeGUID, String parentElementGUID, String parentElementTypeName, Date effectiveFrom, Date effectiveTo, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Connect a schema type to a data asset, process or port.
      Parameters:
      userId - calling user
      externalSourceGUID - unique identifier of software server capability representing the caller
      externalSourceName - unique name of software server capability representing the caller
      schemaTypeGUID - unique identifier of the schema type to connect
      parentElementGUID - unique identifier of the open metadata element that this schema type is to be connected to
      parentElementTypeName - unique type name of the open metadata element that this schema type is to be connected to
      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
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - the user is not authorized to issue this request
      PropertyServerException - there is a problem reported in the open metadata server(s)
    • clearSchemaTypeParent

      public void clearSchemaTypeParent(String userId, String externalSourceGUID, String externalSourceName, String schemaTypeGUID, String parentElementGUID, String parentElementTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Remove the relationship between a schema type and its parent data asset, process or port.
      Parameters:
      userId - calling user
      externalSourceGUID - unique identifier of software server capability representing the caller
      externalSourceName - unique name of software server capability representing the caller
      schemaTypeGUID - unique identifier of the schema type to connect
      parentElementGUID - unique identifier of the open metadata element that this schema type is to be connected to
      parentElementTypeName - unique type name of the open metadata element that this schema type is to be connected to
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - the user is not authorized to issue this request
      PropertyServerException - there is a problem reported in the open metadata server(s)
    • getNestedSchemaTypesForParent

      public List<B> getNestedSchemaTypesForParent(String userId, String parentGUID, String parentGUIDParameterName, String parentTypeName, List<String> serviceSupportedZones, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the list of schema types nested in the parent schema type - this is typically schema type options or APIOperations in a APISchemaType.
      Parameters:
      userId - calling user
      parentGUID - identifier for the entity that the object is attached to
      parentGUIDParameterName - parameter supplying parentGUID
      parentTypeName - type name of anchor
      serviceSupportedZones - supported zones for calling service
      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:
      list of schemaType objects or null
      Throws:
      InvalidParameterException - the schemaType bean properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • getSchemaType

      public B getSchemaType(String userId, String schemaTypeGUID, String guidParameterName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Retrieve a specific schema type based on its unique identifier (GUID). This is used to do updates and to retrieve a linked schema.
      Parameters:
      userId - calling user
      schemaTypeGUID - guid of schema type to retrieve.
      guidParameterName - parameter describing where the guid came from
      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:
      schema type or null depending on whether the object is found
      Throws:
      InvalidParameterException - the guid is null
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • findSchemaTypes

      public List<B> findSchemaTypes(String userId, String suppliedTypeName, String searchString, int startFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the list of schema type metadata elements that contain the search string. The search string is treated as a regular expression.
      Parameters:
      userId - calling user
      suppliedTypeName - optional type name for the schema type - used to restrict the search results
      searchString - string to find in the properties
      startFrom - paging start point
      pageSize - maximum results that can be returned
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of matching metadata elements
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - the user is not authorized to issue this request
      PropertyServerException - there is a problem reported in the open metadata server(s)
    • getSchemaTypeByName

      public List<B> getSchemaTypeByName(String userId, String suppliedTypeName, String name, int startFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the list of schema type metadata elements with a matching qualified or display name. There are no wildcards supported on this request.
      Parameters:
      userId - calling user
      suppliedTypeName - optional type name for the schema type - used to restrict the search results
      name - name to search for
      startFrom - paging start point
      pageSize - maximum results that can be returned
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of matching metadata elements
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - the user is not authorized to issue this request
      PropertyServerException - there is a problem reported in the open metadata server(s)
    • getSchemaTypeForElement

      public B getSchemaTypeForElement(String userId, String parentElementGUID, String parentElementTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Return the schema type associated with a specific open metadata element (data asset, process or port).
      Parameters:
      userId - calling user
      parentElementGUID - unique identifier of the open metadata element that this schema type is connected to
      parentElementTypeName - unique type name of the open metadata element that this schema type is connected to
      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:
      metadata element describing the schema type associated with the requested parent element
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - the user is not authorized to issue this request
      PropertyServerException - there is a problem reported in the open metadata server(s)
    • getSchemaTypeFromInstance

      public B getSchemaTypeFromInstance(String userId, InstanceHeader schemaRootHeader, String schemaRootTypeName, InstanceProperties instanceProperties, List<Classification> entityClassifications, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Transform the schema type information stored either as a schema type entity or in the TypeClassifiedAttribute classification into a schema type bean. To completely fill out the schema type it may be necessary to retrieve additional entities. For example, a map schema type includes links to the two types that are being mapped together.
      Parameters:
      userId - calling user
      schemaRootHeader - header of the schema element that holds the root information
      schemaRootTypeName - name of type of the schema element that holds the root information
      instanceProperties - properties describing the schema type
      entityClassifications - classifications from the root 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
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      schema type bean
      Throws:
      InvalidParameterException - problem with the entity
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • setupQueryTargetRelationship

      public void setupQueryTargetRelationship(String userId, String externalSourceGUID, String externalSourceName, String schemaElementGUID, String schemaElementGUIDParameterName, String schemaElementTypeName, String queryId, String query, String queryTargetGUID, String queryTargetGUIDParameterName, Date effectiveFrom, Date effectiveTo, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create a new query relationship for a derived schema element.
      Parameters:
      userId - calling user
      externalSourceGUID - unique identifier of software capability representing the DBMS
      externalSourceName - unique name of software capability representing the DBMS
      schemaElementGUID - unique identifier of the schema element that this query supports
      schemaElementGUIDParameterName - parameter name for schemaElementGUID
      schemaElementTypeName - name of type for schema element
      queryId - identifier for the query - used as a placeholder in the formula (stored in the column's CalculatedValue classification)
      query - the query that is made on the targetGUID
      queryTargetGUID - the unique identifier of the target (this is a schema element - typically a schema attribute)
      queryTargetGUIDParameterName - parameter supplying queryTargetGUID
      effectiveFrom - starting time for this relationship (null for all time)
      effectiveTo - ending time for this relationship (null for all time)
      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 invalid
      UserNotAuthorizedException - the user is not authorized to issue this request
      PropertyServerException - there is a problem reported in the open metadata server(s)
    • updateQueryTargetRelationship

      public void updateQueryTargetRelationship(String userId, String externalSourceGUID, String externalSourceName, String schemaElementGUID, String schemaElementGUIDParameterName, String schemaElementTypeName, String queryId, String query, String queryTargetGUID, String queryTargetGUIDParameterName, Date effectiveFrom, Date effectiveTo, boolean isMergeUpdate, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the query properties for a query relationship for a derived schema element.
      Parameters:
      userId - calling user
      externalSourceGUID - unique identifier of software capability representing the DBMS
      externalSourceName - unique name of software capability representing the DBMS
      schemaElementGUID - unique identifier of the schema element that this query supports
      schemaElementGUIDParameterName - parameter name for schemaElementGUID
      schemaElementTypeName - name of type for schema element
      queryId - identifier for the query - used as a placeholder in the formula (stored in the column's CalculatedValue classification)
      query - the query that is made on the targetGUID
      queryTargetGUID - the unique identifier of the target (this is a schema element - typically a schema attribute)
      queryTargetGUIDParameterName - parameter supplying queryTargetGUID
      effectiveFrom - starting time for this relationship (null for all time)
      effectiveTo - ending time for this relationship (null for all time)
      isMergeUpdate - should the new properties be merged with existing properties (true) or completely replace them (false)?
      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 invalid
      UserNotAuthorizedException - the user is not authorized to issue this request
      PropertyServerException - there is a problem reported in the open metadata server(s)
    • clearQueryTargetRelationship

      public void clearQueryTargetRelationship(String userId, String externalSourceGUID, String externalSourceName, String schemaElementGUID, String schemaElementGUIDParameterName, String schemaElementTypeName, String queryTargetGUID, String queryTargetGUIDParameterName, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the query properties for a query relationship for a derived schema element.
      Parameters:
      userId - calling user
      externalSourceGUID - unique identifier of software capability representing the DBMS
      externalSourceName - unique name of software capability representing the DBMS
      schemaElementGUID - unique identifier of the schema element that this query supports
      schemaElementGUIDParameterName - parameter name for schemaElementGUID
      schemaElementTypeName - name of type for schema element
      queryTargetGUID - the unique identifier of the target (this is a schema element - typically a schema attribute)
      queryTargetGUIDParameterName - parameter supplying queryTargetGUID
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - the user is not authorized to issue this request
      PropertyServerException - there is a problem reported in the open metadata server(s)
    • setupSchemaElementRelationship

      public void setupSchemaElementRelationship(String userId, String externalSourceGUID, String externalSourceName, String endOneGUID, String endTwoGUID, String relationshipTypeName, Map<String,Object> properties, Date effectiveFrom, Date effectiveTo, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create a relationship between two schema elements. The name of the desired relationship, and any properties (including effectivity dates) are passed on the API.
      Parameters:
      userId - calling user
      externalSourceGUID - unique identifier of software server capability representing the caller
      externalSourceName - unique name of software server capability representing the caller
      endOneGUID - unique identifier of the schema element at end one of the relationship
      endTwoGUID - unique identifier of the schema element at end two of the relationship
      relationshipTypeName - type of the relationship to create
      properties - properties for the new 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
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - the user is not authorized to issue this request
      PropertyServerException - there is a problem reported in the open metadata server(s)
    • clearSchemaElementRelationship

      public void clearSchemaElementRelationship(String userId, String externalSourceGUID, String externalSourceName, String endOneGUID, String endTwoGUID, String relationshipTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Remove a relationship between two schema elements. The name of the desired relationship is passed on the API.
      Parameters:
      userId - calling user
      externalSourceGUID - unique identifier of software server capability representing the caller
      externalSourceName - unique name of software server capability representing the caller
      endOneGUID - unique identifier of the schema element at end one of the relationship
      endTwoGUID - unique identifier of the schema element at end two of the relationship
      relationshipTypeName - type of the relationship to create
      forLineage - return elements marked with the Memento classification?
      forDuplicateProcessing - do not merge elements marked as duplicates?
      effectiveTime - when should the elements be effected for - null is anytime; new Date() is now
      methodName - calling method
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - the user is not authorized to issue this request
      PropertyServerException - there is a problem reported in the open metadata server(s)