Class DesignModelArchiveBuilder

java.lang.Object
org.odpi.openmetadata.archiveutilities.designmodels.base.DesignModelArchiveBuilder

public class DesignModelArchiveBuilder extends Object
DesignModelArchiveBuilder creates the open metadata compliant instances for content that is typically found in a common/standard design model. This initial implementation is focused on concept models.
  • Field Details

    • writeToFile

      protected boolean writeToFile
  • Constructor Details

    • DesignModelArchiveBuilder

      protected DesignModelArchiveBuilder(String archiveGUID, String archiveName, String archiveDescription, org.odpi.openmetadata.repositoryservices.connectors.stores.archivestore.properties.OpenMetadataArchiveType archiveType, String archiveRootName, String originatorName, String originatorLicense, Date creationDate, long versionNumber, String versionName)
      Typical constructor passes parameters used to build the open metadata archive's property header.
      Parameters:
      archiveGUID - unique identifier for this open metadata archive.
      archiveName - name of the open metadata archive.
      archiveDescription - description of the open metadata archive.
      archiveType - enum describing the type of archive this is.
      archiveRootName - non-spaced root name of the open metadata archive elements.
      originatorName - name of the originator (person or organization) of the archive.
      originatorLicense - license for the content.
      creationDate - data that this archive was created.
      versionNumber - version number of the archive.
      versionName - version name for the archive.
    • DesignModelArchiveBuilder

      public DesignModelArchiveBuilder()
      Default constructor
  • Method Details

    • initialize

      protected void initialize(String archiveGUID, String archiveName, String archiveDescription, org.odpi.openmetadata.repositoryservices.connectors.stores.archivestore.properties.OpenMetadataArchiveType archiveType, String archiveRootName, String originatorName, String originatorLicense, Date creationDate, long versionNumber, String versionName)
      Typical constructor passes parameters used to build the open metadata archive's property header.
      Parameters:
      archiveGUID - unique identifier for this open metadata archive.
      archiveName - name of the open metadata archive.
      archiveDescription - description of the open metadata archive.
      archiveType - enum describing the type of archive this is.
      archiveRootName - non-spaced root name of the open metadata archive elements.
      originatorName - name of the originator (person or organization) of the archive.
      originatorLicense - license for the content.
      creationDate - data that this archive was created.
      versionNumber - version number of the archive.
      versionName - version name for the archive.
    • addGlossary

      protected String addGlossary(String qualifiedName, String displayName, String description, String language, String usage, String externalLink, String scope)
      Create a glossary entity. If the external link is specified, the glossary entity is linked to an ExternalGlossaryLink entity. If the scope is specified, the glossary entity is classified as a CanonicalGlossary.
      Parameters:
      qualifiedName - unique name for the glossary
      displayName - display name for the glossary
      description - description about the glossary
      language - language that the glossary is written in
      usage - how the glossary should be used
      externalLink - link to material
      scope - scope of the content.
      Returns:
      id for the glossary
    • addCategory

      protected String addCategory(String glossaryId, String qualifiedName, String displayName, String description, String subjectArea)
      Add a glossary category to the archive and connect it to glossary.
      Parameters:
      glossaryId - identifier of the glossary.
      qualifiedName - unique name for the category.
      displayName - display name for the category.
      description - description of the category.
      subjectArea - name of the subject area if this category contains terms for the subject area.
      Returns:
      identifier of the category
    • addTerm

      protected String addTerm(String glossaryId, List<String> categoryIds, String qualifiedName, String displayName, String description)
      Add a term and link it to the glossary and an arbitrary number of categories.
      Parameters:
      glossaryId - unique identifier of the glossary
      categoryIds - unique identifiers of the categories
      qualifiedName - unique name of the term
      displayName - display name of the term
      description - description of the term
      Returns:
      unique identifier of the term
    • addTerm

      protected String addTerm(String glossaryId, List<String> categoryIds, String qualifiedName, String displayName, String description, String examples, boolean isSpineObject, boolean isSpineAttribute, boolean categoriesAsNames)
      Add a term and link it to the glossary and an arbitrary number of categories.
      Parameters:
      glossaryId - unique identifier of the glossary
      categoryIds - unique identifiers of the categories
      qualifiedName - unique name of the term
      displayName - display name of the term
      description - description of the term
      examples - examples of the term
      isSpineObject - term is a spine object
      isSpineAttribute - term is a spine attribute
      categoriesAsNames - when true the categories are specified as qualified names, otherwise they are guids.
      Returns:
      unique identifier of the term
    • addCategoryToCategory

      protected void addCategoryToCategory(String parentCategoryId, String childCategoryId)
      Link two categories together as part of the parent child hierarchy.
      Parameters:
      parentCategoryId - unique identifier for the parent category
      childCategoryId - unique identifier for the child category
    • addMoreInformationLink

      protected void addMoreInformationLink(String describedElementId, String describerElementId)
      Create a navigation link from one referenceable to another to show they provide more information.
      Parameters:
      describedElementId - unique identifier for the element that is referencing the other.
      describerElementId - unique identifier for the element being pointed to.
    • linkTermToReferenceable

      protected void linkTermToReferenceable(String termId, String referenceableId)
      Create a semantic assignment between a term and a Referenceable - for example a model element.
      Parameters:
      termId - identifier of term
      referenceableId - identifier of referenceable
    • addDesignModel

      protected String addDesignModel(String qualifiedName, String displayName, String technicalName, String description, String versionNumber, String author)
      Create an element that represents a design model.
      Parameters:
      qualifiedName - unique name for the model
      displayName - display name
      technicalName - non-spaced name
      description - description
      versionNumber - version description
      author - author
      Returns:
      guid of model
    • addDesignModelGroup

      protected String addDesignModelGroup(String modelId, String parentGroupId, String qualifiedName, String displayName, String technicalName, String description, String versionNumber, String author)
      Create an element for a model group and link it to a model and any parent model group.
      Parameters:
      modelId - unique identifier of model (or null)
      parentGroupId - unique identifier of parent (or null)
      qualifiedName - unique name for the model
      displayName - display name
      technicalName - non-spaced name
      description - description
      versionNumber - version description
      author - author
      Returns:
      guid of model group
    • addConceptModelElement

      protected String addConceptModelElement(String typeName, String modelId, List<String> groupIds, String qualifiedName, String displayName, String technicalName, String description, String versionNumber, String author)
      Create an element of a concept model.
      Parameters:
      typeName - unique name of the element's type
      modelId - unique identifier of model (or null)
      groupIds - list of model groups to add this element to
      qualifiedName - unique name for the model
      displayName - display name
      technicalName - non-spaced name
      description - description
      versionNumber - version description
      author - author
      Returns:
      guid of element
    • addConceptBead

      protected String addConceptBead(String modelId, List<String> groupIds, String qualifiedName, String displayName, String technicalName, String description, String versionNumber, String author)
      Create an element that describes a concept bead.
      Parameters:
      modelId - unique identifier of model (or null)
      groupIds - list of model groups to add this element to
      qualifiedName - unique name for the model
      displayName - display name
      technicalName - non-spaced name
      description - description
      versionNumber - version description
      author - author
      Returns:
      guid of element
    • addConceptBeadLink

      protected String addConceptBeadLink(String modelId, List<String> groupIds, String qualifiedName, String displayName, String technicalName, String description, String versionNumber, String author)
      Create a concept bead link.
      Parameters:
      modelId - unique identifier of model (or null)
      groupIds - list of model groups to add this element to
      qualifiedName - unique name for the model
      displayName - display name
      technicalName - non-spaced name
      description - description
      versionNumber - version description
      author - author
      Returns:
      guid of element
    • addConceptBeadAttribute

      protected String addConceptBeadAttribute(String modelId, List<String> groupIds, String qualifiedName, String displayName, String technicalName, String description, String versionNumber, String author)
      Create a concept attribute.
      Parameters:
      modelId - unique identifier for the model element
      groupIds - list of model groups to add this element to
      qualifiedName - unique name for the model
      displayName - display name
      technicalName - non-spaced name
      description - description
      versionNumber - version description
      author - author
      Returns:
      guid of element
    • addAttributeToBead

      protected void addAttributeToBead(String beadId, String attributeId, int position, int minCardinality, int maxCardinality, boolean uniqueValues, boolean orderedValues)
    • addLinkToBead

      protected void addLinkToBead(String beadId, String linkId, String attributeName, ConceptModelDecoration decoration, int position, int minCardinality, int maxCardinality, boolean uniqueValues, boolean orderedValues)
    • addIsATypeOfRelationship

      protected void addIsATypeOfRelationship(String specialTermQName, String generalizedTermQName)
      Add an is-a-type-of relationship
      Parameters:
      specialTermQName - qualified name of the specialized term
      generalizedTermQName - qualified name of the generalized term
    • addHasARelationship

      protected void addHasARelationship(String conceptQName, String propertyQName)
    • addRelatedTermRelationship

      protected void addRelatedTermRelationship(String conceptQName, String propertyQName)
    • addCategoryHierarchy

      protected void addCategoryHierarchy(String childCategoryName, Set<String> parentNames)
      Add Category hierarchy relationship
      Parameters:
      childCategoryName - name of the child category
      parentNames - set of the names of the parent categories qualified names
    • getOpenMetadataArchive

      protected org.odpi.openmetadata.repositoryservices.connectors.stores.archivestore.properties.OpenMetadataArchive getOpenMetadataArchive()
      Returns the open metadata type archive containing all of the content loaded by the subclass.
      Returns:
      populated open metadata archive object
    • logBadArchiveContent

      protected void logBadArchiveContent(String methodName)
      Throws an exception if there is a problem building the archive.
      Parameters:
      methodName - calling method