java.lang.Object
org.odpi.openmetadata.repositoryservices.archiveutilities.OMRSArchiveBuilder
All Implemented Interfaces:
OpenMetadataArchiveBuilder, OpenMetadataArchiveCache

public class OMRSArchiveBuilder extends Object implements OpenMetadataArchiveBuilder, OpenMetadataArchiveCache
OMRSArchiveBuilder creates an in-memory copy of an open metadata archive that can be saved to disk or processed by a server.
  • Constructor Details

    • OMRSArchiveBuilder

      public OMRSArchiveBuilder(String archiveGUID, String archiveName, String archiveDescription, OpenMetadataArchiveType archiveType, String originatorName, Date creationDate, List<OpenMetadataArchive> dependsOnArchives)
      Simple constructor.
      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.
      originatorName - name of the originator (person or organization) of the archive.
      creationDate - data that this archive was created.
      dependsOnArchives - list of GUIDs for archives that this archive depends on (null for no dependencies).
    • OMRSArchiveBuilder

      public OMRSArchiveBuilder(String archiveGUID, String archiveName, String archiveDescription, OpenMetadataArchiveType archiveType, String originatorName, String originatorLicense, Date creationDate, List<OpenMetadataArchive> dependsOnArchives)
      Constructor for licensed material. It passes parameters used to build the open metadata archive's property header including the default license string. This determines the license and copyright for all instances in the archive that do not have their own explicit license string. The default license string will be inserted into each instance with a null license when it is loaded into an open metadata repository.
      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.
      originatorName - name of the originator (person or organization) of the archive.
      originatorLicense - default license string for content.
      creationDate - data that this archive was created.
      dependsOnArchives - list of archives that this archive depends on (null for no dependencies).
    • OMRSArchiveBuilder

      public OMRSArchiveBuilder(OpenMetadataArchiveProperties properties)
      Constructor used when content of dependent archives is not needed in the maps.
      Parameters:
      properties - filled out archive properties
    • OMRSArchiveBuilder

      public OMRSArchiveBuilder(String archiveGUID, String archiveName, String archiveDescription, OpenMetadataArchiveType archiveType, String archiveVersion, String originatorName, String originatorLicense, Date creationDate, List<OpenMetadataArchive> dependsOnArchives)
      Full constructor. It passes parameters used to build the open metadata archive's property header including the default license string. This determines the license and copyright for all instances in the archive that do not have their own explicit license string. The default license string will be inserted into each instance with a null license when it is loaded into an open metadata repository.
      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.
      archiveVersion - descriptive name for the version of the archive.
      originatorName - name of the originator (person or organization) of the archive.
      originatorLicense - default license string for content.
      creationDate - data that this archive was created.
      dependsOnArchives - list of archives that this archive depends on (null for no dependencies).
  • Method Details

    • setArchiveProperties

      public void setArchiveProperties(String archiveGUID, String archiveName, String archiveDescription, OpenMetadataArchiveType archiveType, String archiveVersion, String originatorName, String originatorLicense, Date creationDate, List<OpenMetadataArchive> dependsOnArchives)
      Set up archive header and initialize the maps assuming it is building a new archive. It passes parameters used to build the open metadata archive's property header including the default license string. This determines the license and copyright for all instances in the archive that do not have their own explicit license string. The default license string will be inserted into each instance with a null license when it is loaded into an open metadata repository.
      Specified by:
      setArchiveProperties in interface OpenMetadataArchiveBuilder
      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.
      archiveVersion - descriptive name for the version of the archive.
      originatorName - name of the originator (person or organization) of the archive.
      originatorLicense - default license string for content.
      creationDate - data that this archive was created.
      dependsOnArchives - list of archives that this archive depends on (null for no dependencies).
    • getArchiveProperties

      public OpenMetadataArchiveProperties getArchiveProperties()
      Return the archive properties as will appear in the archive. Null is returned if archive properties not set up.
      Specified by:
      getArchiveProperties in interface OpenMetadataArchiveBuilder
      Returns:
      property bean
    • addPrimitiveDef

      public void addPrimitiveDef(PrimitiveDef primitiveDef)
      Add a new PrimitiveDef to the archive.
      Specified by:
      addPrimitiveDef in interface OpenMetadataArchiveBuilder
      Parameters:
      primitiveDef - type to add nulls are ignored
    • getPrimitiveDef

      public PrimitiveDef getPrimitiveDef(String primitiveDefName)
      Retrieve a PrimitiveDef from the archive.
      Specified by:
      getPrimitiveDef in interface OpenMetadataArchiveBuilder
      Parameters:
      primitiveDefName - primitive to retrieve
      Returns:
      PrimitiveDef type
    • addCollectionDef

      public void addCollectionDef(CollectionDef collectionDef)
      Add a new CollectionDef to the archive.
      Specified by:
      addCollectionDef in interface OpenMetadataArchiveBuilder
      Parameters:
      collectionDef - type to add
    • getCollectionDef

      public CollectionDef getCollectionDef(String collectionDefName)
      Retrieve a CollectionDef from the archive.
      Specified by:
      getCollectionDef in interface OpenMetadataArchiveBuilder
      Parameters:
      collectionDefName - type to retrieve
      Returns:
      CollectionDef type
    • addEnumDef

      public void addEnumDef(EnumDef enumDef)
      Add a new EnumDef to the archive.
      Specified by:
      addEnumDef in interface OpenMetadataArchiveBuilder
      Parameters:
      enumDef - type to add
    • getEnumDef

      public EnumDef getEnumDef(String enumDefName)
      Get an existing EnumDef from the archive.
      Specified by:
      getEnumDef in interface OpenMetadataArchiveBuilder
      Parameters:
      enumDefName - type to retrieve
      Returns:
      EnumDef object
    • addClassificationDef

      public void addClassificationDef(ClassificationDef classificationDef)
      Add a new ClassificationDef to the archive.
      Specified by:
      addClassificationDef in interface OpenMetadataArchiveBuilder
      Parameters:
      classificationDef - type to add
    • addEntityDef

      public void addEntityDef(EntityDef entityDef)
      Add a new EntityDef to the archive.
      Specified by:
      addEntityDef in interface OpenMetadataArchiveBuilder
      Parameters:
      entityDef - type to add
    • getEntityDef

      public EntityDef getEntityDef(String entityDefName)
      Retrieve the entityDef or null if it is not defined.
      Specified by:
      getEntityDef in interface OpenMetadataArchiveBuilder
      Parameters:
      entityDefName - name of the entity
      Returns:
      the retrieved entity def
    • getRelationshipDef

      public RelationshipDef getRelationshipDef(String relationshipDefName)
      Retrieve the relationshipDef or null if it is not defined.
      Specified by:
      getRelationshipDef in interface OpenMetadataArchiveBuilder
      Parameters:
      relationshipDefName - name of the relationship
      Returns:
      the retrieved relationship def
    • getClassificationDef

      public ClassificationDef getClassificationDef(String classificationDef)
      Retrieve the relationshipDef or null if it is not defined.
      Specified by:
      getClassificationDef in interface OpenMetadataArchiveBuilder
      Parameters:
      classificationDef - name of the classification
      Returns:
      the retrieved classification def
    • addRelationshipDef

      public void addRelationshipDef(RelationshipDef relationshipDef)
      Add a new RelationshipDef to the archive.
      Specified by:
      addRelationshipDef in interface OpenMetadataArchiveBuilder
      Parameters:
      relationshipDef - type to add
    • getPatchForType

      public TypeDefPatch getPatchForType(String typeName)
      Create a skeleton patch for a TypeDefPatch.
      Specified by:
      getPatchForType in interface OpenMetadataArchiveBuilder
      Parameters:
      typeName - name of type
      Returns:
      TypeDefPatch
    • addTypeDefPatch

      public void addTypeDefPatch(TypeDefPatch typeDefPatch)
      Add a new patch to the archive.
      Specified by:
      addTypeDefPatch in interface OpenMetadataArchiveBuilder
      Parameters:
      typeDefPatch - patch
    • getTypeDefByName

      public TypeDef getTypeDefByName(String typeName)
      Return the requested type definition if known.
      Specified by:
      getTypeDefByName in interface OpenMetadataArchiveBuilder
      Parameters:
      typeName - name ot type
      Returns:
      type definition
    • addEntity

      public void addEntity(EntityDetail entity)
      Add a new entity to the archive.
      Specified by:
      addEntity in interface OpenMetadataArchiveBuilder
      Parameters:
      entity - instance to add
    • getEntity

      public EntityDetail getEntity(String guid)
      Retrieve an entity from the archive.
      Specified by:
      getEntity in interface OpenMetadataArchiveBuilder
      Parameters:
      guid - unique identifier
      Returns:
      requested entity
    • queryEntity

      public EntityDetail queryEntity(String guid)
      Retrieve an entity from the archive. Return null if it does not exist
      Specified by:
      queryEntity in interface OpenMetadataArchiveBuilder
      Parameters:
      guid - unique identifier
      Returns:
      requested entity
    • addRelationship

      public void addRelationship(Relationship relationship)
      Add a new relationship to the archive.
      Specified by:
      addRelationship in interface OpenMetadataArchiveBuilder
      Parameters:
      relationship - instance to add
    • getRelationship

      public Relationship getRelationship(String guid)
      Retrieve a relationship from the archive.
      Specified by:
      getRelationship in interface OpenMetadataArchiveBuilder
      Parameters:
      guid - unique identifier
      Returns:
      requested relationship
    • queryRelationship

      public Relationship queryRelationship(String guid)
      Retrieve a relationship from the archive.
      Specified by:
      queryRelationship in interface OpenMetadataArchiveBuilder
      Parameters:
      guid - unique identifier
      Returns:
      requested relationship
    • addClassification

      public void addClassification(ClassificationEntityExtension classification)
      Add a new classification to the archive.
      Specified by:
      addClassification in interface OpenMetadataArchiveBuilder
      Parameters:
      classification - instance to add
    • getClassification

      public ClassificationEntityExtension getClassification(String entityGUID, String classificationName)
      Retrieve a classification extension from the archive.
      Specified by:
      getClassification in interface OpenMetadataArchiveBuilder
      Parameters:
      entityGUID - unique identifier of entity
      classificationName - name of the classification
      Returns:
      requested classification extension
    • queryClassification

      public ClassificationEntityExtension queryClassification(String entityGUID, String classificationName)
      Retrieve a classification extension from the archive if it exists
      Specified by:
      queryClassification in interface OpenMetadataArchiveBuilder
      Parameters:
      entityGUID - unique identifier of entity
      classificationName - name of the classification
      Returns:
      requested classification extension
    • getOpenMetadataArchive

      public OpenMetadataArchive getOpenMetadataArchive()
      Once the content of the archive has been added to the archive builder, an archive object can be retrieved.
      Specified by:
      getOpenMetadataArchive in interface OpenMetadataArchiveCache
      Returns:
      open metadata archive object with all the supplied content in it.
    • logBadArchiveContent

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