Class SimpleCatalogArchiveHelper
- java.lang.Object
-
- org.odpi.openmetadata.samples.archiveutilities.SimpleCatalogArchiveHelper
-
- Direct Known Subclasses:
GovernanceArchiveHelper
public class SimpleCatalogArchiveHelper extends Object
SimpleCatalogArchiveHelper creates elements used when creating a simple catalog. This includes assets, their schemas and connections.
-
-
Field Summary
Fields Modifier and Type Field Description protected static StringAPI_HEADER_TYPE_NAMEprotected static StringAPI_REQUEST_TYPE_NAMEprotected static StringAPI_RESPONSE_TYPE_NAMEprotected OpenMetadataArchiveBuilderarchiveBuilderprotected OMRSArchiveHelperarchiveHelperprotected StringarchiveRootNameprotected static StringguidMapFileNamePostFixprotected OMRSArchiveGUIDMapidToGUIDMapprotected StringoriginatorNameprotected StringversionName
-
Constructor Summary
Constructors Constructor Description SimpleCatalogArchiveHelper(OpenMetadataArchiveBuilder archiveBuilder, String archiveGUID, String archiveRootName, String originatorName, Date creationDate, long versionNumber, String versionName)Typical constructor passes parameters used to build the open metadata archive's property header.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StringaddAPIOperation(String apiSchemaTypeGUID, String qualifiedName, String displayName, String description, String path, String command, Map<String,String> additionalProperties)Create the schema type for an API operation.StringaddAPIParameterList(String apiOperationGUID, String relationshipTypeName, String qualifiedName, String displayName, String description, boolean required, Map<String,String> additionalProperties)Create a parameter list schema type for an API operation.StringaddAsset(String typeName, String qualifiedName, String displayName, String description, List<String> governanceZones, Map<String,String> additionalProperties, Map<String,Object> extendedProperties)Create an asset entity.StringaddAsset(String typeName, String qualifiedName, String displayName, String description, Map<String,String> additionalProperties, Map<String,Object> extendedProperties)Create an asset entity.StringaddAsset(String typeName, String qualifiedName, String displayName, String description, Map<String,String> additionalProperties, Map<String,Object> extendedProperties, List<Classification> classifications)Create an asset entity.voidaddAttributeForSchemaType(String schemaTypeGUID, String schemaAttributeGUID)Create the relationship between a SchemaType element and a child SchemaAttribute element using the AttributeForSchema relationship.StringaddCategory(String glossaryId, String qualifiedName, String displayName, String description, String subjectArea)Add a glossary category to the archive and connect it to glossary.voidaddCategoryHierarchy(String childCategoryName, Set<String> parentNames)Add Category hierarchy relationshipvoidaddCategoryToCategory(String parentCategoryId, String childCategoryId)Link two categories together as part of the parent child hierarchy.StringaddConnection(String qualifiedName, String displayName, String description, String userId, String clearPassword, String encryptedPassword, Map<String,String> securedProperties, Map<String,Object> configurationProperties, Map<String,String> additionalProperties, String connectorTypeGUID, String endpointGUID)Create a connection entity.voidaddConnectionForAsset(String assetGUID, String assetSummary, String connectionGUID)Create the relationship between an asset and its connection.protected StringaddConnectorCategory(String connectorTypeDirectoryGUID, String qualifiedName, String displayName, String description, String targetTechnologySource, String targetTechnologyName, Map<String,Boolean> recognizedSecuredProperties, Map<String,Boolean> recognizedConfigurationProperties, Map<String,Boolean> recognizedAdditionalProperties, Map<String,String> additionalProperties)Create a connector category entity.StringaddConnectorType(String connectorCategoryGUID, String connectorTypeGUID, String qualifiedName, String displayName, String description, String supportedAssetTypeName, String expectedDataFormat, String connectorProviderClassName, String connectorFrameworkName, String connectorInterfaceLanguage, List<String> connectorInterfaces, String targetTechnologySource, String targetTechnologyName, List<String> targetTechnologyInterfaces, List<String> targetTechnologyVersions, List<String> recognizedSecuredProperties, List<String> recognizedConfigurationProperties, List<String> recognizedAdditionalProperties, Map<String,String> additionalProperties)Create a connector type entity.protected StringaddConnectorType(String connectorCategoryGUID, String qualifiedName, String displayName, String description, String supportedAssetTypeName, String expectedDataFormat, String connectorProviderClassName, String connectorFrameworkName, String connectorInterfaceLanguage, List<String> connectorInterfaces, String targetTechnologySource, String targetTechnologyName, List<String> targetTechnologyInterfaces, List<String> targetTechnologyVersions, List<String> recognizedSecuredProperties, List<String> recognizedConfigurationProperties, List<String> recognizedAdditionalProperties, Map<String,String> additionalProperties)Create a connector type entity.protected StringaddConnectorTypeDirectory(String qualifiedName, String displayName, String description, Map<String,String> additionalProperties)Create a connector category entity.voidaddDataContentForDataSet(String dataContentGUID, String dataSetGUID)Create the relationship between a data set and an asset that is providing all or part of its content.StringaddEndpoint(String qualifiedName, String displayName, String description, String networkAddress, String protocol, Map<String,String> additionalProperties)Create a endpoint entity.StringaddGlossary(String qualifiedName, String displayName, String description, String language, String usage, String externalLink, String scope)Create a glossary entity.voidaddHasARelationship(String conceptQName, String propertyQName)voidaddIsATypeOfRelationship(String specialTermQName, String generalizedTermQName)Add an is-a-type-of relationshipvoidaddMoreInformationLink(String describedElementId, String describerElementId)Create a navigation link from one referenceable to another to show they provide more information.voidaddNestedSchemaAttribute(String parentSchemaAttributeGUID, String childSchemaAttributeGUID)Create the relationship between a SchemaAttribute element and a child SchemaAttribute element using the NestedSchemaAttribute relationship.voidaddRelatedTermRelationship(String conceptQName, String propertyQName)StringaddSchemaAttribute(String typeName, String schemaTypeName, String qualifiedName, String displayName, String description, String dataType, int length, int position, Map<String,String> additionalProperties)Create the a schema attribute with a TypeEmbeddedAttribute classification.voidaddSchemaTypeOption(String schemaTypeChoiceGUID, String schemaTypeOptionGUID)Create the relationship between a SchemaTypeChoice element and a child element using the SchemaTypeOption relationship.StringaddSoftwareCapability(String typeName, String qualifiedName, String displayName, String description, String capabilityType, String capabilityVersion, String patchLevel, String source, Map<String,String> additionalProperties, Map<String,Object> extendedProperties)Create a software capability entity.StringaddTerm(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.StringaddTerm(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.StringaddTopLevelSchemaType(String assetGUID, String typeName, String qualifiedName, String displayName, String description, Map<String,String> additionalProperties)Create the top level schema type for an asset.voidlinkTermToReferenceable(String termId, String referenceableId)Create a semantic assignment between a term and a Referenceable - for example a model element.voidsaveGUIDs()Save the GUIDs so that the GUIDs of the elements inside the archive are consistent each time the archive runs.
-
-
-
Field Detail
-
guidMapFileNamePostFix
protected static final String guidMapFileNamePostFix
- See Also:
- Constant Field Values
-
API_HEADER_TYPE_NAME
protected static final String API_HEADER_TYPE_NAME
- See Also:
- Constant Field Values
-
API_REQUEST_TYPE_NAME
protected static final String API_REQUEST_TYPE_NAME
- See Also:
- Constant Field Values
-
API_RESPONSE_TYPE_NAME
protected static final String API_RESPONSE_TYPE_NAME
- See Also:
- Constant Field Values
-
archiveBuilder
protected OpenMetadataArchiveBuilder archiveBuilder
-
archiveHelper
protected OMRSArchiveHelper archiveHelper
-
idToGUIDMap
protected OMRSArchiveGUIDMap idToGUIDMap
-
archiveRootName
protected String archiveRootName
-
originatorName
protected String originatorName
-
versionName
protected String versionName
-
-
Constructor Detail
-
SimpleCatalogArchiveHelper
public SimpleCatalogArchiveHelper(OpenMetadataArchiveBuilder archiveBuilder, String archiveGUID, String archiveRootName, String originatorName, 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.archiveRootName- non-spaced root name of the open metadata archive elements.originatorName- name of the originator (person or organization) of the archive.creationDate- data that this archive was created.versionNumber- version number of the archive.versionName- version name for the archive.
-
-
Method Detail
-
saveGUIDs
public void saveGUIDs()
Save the GUIDs so that the GUIDs of the elements inside the archive are consistent each time the archive runs.
-
addAsset
public String addAsset(String typeName, String qualifiedName, String displayName, String description, Map<String,String> additionalProperties, Map<String,Object> extendedProperties, List<Classification> classifications)
Create an asset entity.- Parameters:
typeName- name of asset subtype to use - default is AssetqualifiedName- unique name for the assetdisplayName- display name for the assetdescription- description about the assetadditionalProperties- any other propertiesextendedProperties- additional properties defined in the sub typeclassifications- list of classifications (if any)- Returns:
- id for the asset
-
addAsset
public String addAsset(String typeName, String qualifiedName, String displayName, String description, Map<String,String> additionalProperties, Map<String,Object> extendedProperties)
Create an asset entity.- Parameters:
typeName- name of asset subtype to use - default is AssetqualifiedName- unique name for the assetdisplayName- display name for the assetdescription- description about the assetadditionalProperties- any other propertiesextendedProperties- additional properties defined in the sub type- Returns:
- id for the asset
-
addAsset
public String addAsset(String typeName, String qualifiedName, String displayName, String description, List<String> governanceZones, Map<String,String> additionalProperties, Map<String,Object> extendedProperties)
Create an asset entity.- Parameters:
typeName- name of asset subtype to use - default is AssetqualifiedName- unique name for the assetdisplayName- display name for the assetdescription- description about the assetgovernanceZones- list of zones to add to the assetadditionalProperties- any other propertiesextendedProperties- additional properties defined in the sub type- Returns:
- id for the asset
-
addSoftwareCapability
public String addSoftwareCapability(String typeName, String qualifiedName, String displayName, String description, String capabilityType, String capabilityVersion, String patchLevel, String source, Map<String,String> additionalProperties, Map<String,Object> extendedProperties)
Create a software capability entity.- Parameters:
typeName- name of software capability subtype to use - default is SoftwareCapabilityqualifiedName- unique name for the capabilitydisplayName- display name for the capabilitydescription- description about the capabilityadditionalProperties- any other properties.- Returns:
- id for the capability
-
addConnectionForAsset
public void addConnectionForAsset(String assetGUID, String assetSummary, String connectionGUID)
Create the relationship between an asset and its connection.- Parameters:
assetGUID- unique identifier of the assetassetSummary- summary of the asset from the connection perspectiveconnectionGUID- unique identifier of the connection to its content
-
addDataContentForDataSet
public void addDataContentForDataSet(String dataContentGUID, String dataSetGUID)
Create the relationship between a data set and an asset that is providing all or part of its content.- Parameters:
dataContentGUID- unique identifier of the data storedataSetGUID- unique identifier of the consuming data set
-
addTopLevelSchemaType
public String addTopLevelSchemaType(String assetGUID, String typeName, String qualifiedName, String displayName, String description, Map<String,String> additionalProperties)
Create the top level schema type for an asset.- Parameters:
assetGUID- unique identifier of assettypeName- name of asset subtype to use - default is SchemaTypequalifiedName- unique name for the schema typedisplayName- display name for the schema typedescription- description about the schema typeadditionalProperties- any other properties- Returns:
- id for the schemaType
-
addAPIOperation
public String addAPIOperation(String apiSchemaTypeGUID, String qualifiedName, String displayName, String description, String path, String command, Map<String,String> additionalProperties)
Create the schema type for an API operation.- Parameters:
apiSchemaTypeGUID- unique identifier of top level schemaTypequalifiedName- unique name for the schema typedisplayName- display name for the schema typedescription- description about the schema typepath- the path name for the operationcommand- the command to issue eg GET, POSTadditionalProperties- any other properties- Returns:
- id for the schemaType
-
addAPIParameterList
public String addAPIParameterList(String apiOperationGUID, String relationshipTypeName, String qualifiedName, String displayName, String description, boolean required, Map<String,String> additionalProperties)
Create a parameter list schema type for an API operation.- Parameters:
apiOperationGUID- unique identifier of top level schemaTyperelationshipTypeName- name of relationship type - default is APIRequestqualifiedName- unique name for the schema typedisplayName- display name for the schema typedescription- description about the schema typerequired- is this parameter list requiredadditionalProperties- any other properties- Returns:
- id for the schemaType
-
addSchemaTypeOption
public void addSchemaTypeOption(String schemaTypeChoiceGUID, String schemaTypeOptionGUID)
Create the relationship between a SchemaTypeChoice element and a child element using the SchemaTypeOption relationship.- Parameters:
schemaTypeChoiceGUID- unique identifier of the parent elementschemaTypeOptionGUID- unique identifier of the child element
-
addAttributeForSchemaType
public void addAttributeForSchemaType(String schemaTypeGUID, String schemaAttributeGUID)
Create the relationship between a SchemaType element and a child SchemaAttribute element using the AttributeForSchema relationship.- Parameters:
schemaTypeGUID- unique identifier of the parent elementschemaAttributeGUID- unique identifier of the child element
-
addNestedSchemaAttribute
public void addNestedSchemaAttribute(String parentSchemaAttributeGUID, String childSchemaAttributeGUID)
Create the relationship between a SchemaAttribute element and a child SchemaAttribute element using the NestedSchemaAttribute relationship.- Parameters:
parentSchemaAttributeGUID- unique identifier of the parent elementchildSchemaAttributeGUID- unique identifier of the child element
-
addSchemaAttribute
public String addSchemaAttribute(String typeName, String schemaTypeName, String qualifiedName, String displayName, String description, String dataType, int length, int position, Map<String,String> additionalProperties)
Create the a schema attribute with a TypeEmbeddedAttribute classification.- Parameters:
typeName- name of schema attribute subtype to use - default is SchemaAttributeschemaTypeName- name of schema type subtype to use - default is PrimitiveSchemaTypequalifiedName- unique name for the schema attributedisplayName- display name for the schema attributedescription- description about the schema attributedataType- data type for the schema attributelength- length of the storage used by the schema attributeposition- position in the schema at this leveladditionalProperties- any other properties.- Returns:
- id for the schema attribute
-
addConnection
public String addConnection(String qualifiedName, String displayName, String description, String userId, String clearPassword, String encryptedPassword, Map<String,String> securedProperties, Map<String,Object> configurationProperties, Map<String,String> additionalProperties, String connectorTypeGUID, String endpointGUID)
Create a connection entity.- Parameters:
qualifiedName- unique name for the connectiondisplayName- display name for the connectiondescription- description about the connectionuserId- userId that the connector should use to connect to the platform that hosts the asset.clearPassword- possible password for the connectorencryptedPassword- possible password for the connectorsecuredProperties- properties hidden from the clientconfigurationProperties- properties used to configure the connectoradditionalProperties- any other properties.connectorTypeGUID- unique identifier for the connector typeendpointGUID- unique identifier for the endpoint of the asset- Returns:
- id for the connection
-
addConnectorType
public String addConnectorType(String connectorCategoryGUID, String connectorTypeGUID, String qualifiedName, String displayName, String description, String supportedAssetTypeName, String expectedDataFormat, String connectorProviderClassName, String connectorFrameworkName, String connectorInterfaceLanguage, List<String> connectorInterfaces, String targetTechnologySource, String targetTechnologyName, List<String> targetTechnologyInterfaces, List<String> targetTechnologyVersions, List<String> recognizedSecuredProperties, List<String> recognizedConfigurationProperties, List<String> recognizedAdditionalProperties, Map<String,String> additionalProperties)
Create a connector type entity.- Parameters:
connectorCategoryGUID- unique identifier of connector category - or null is not categorizedconnectorTypeGUID- fixed unique identifier for connector type - comes from the Connector ProviderqualifiedName- unique name for the connector typedisplayName- display name for the connector typedescription- description about the connector typesupportedAssetTypeName- type of asset supported by this connectorexpectedDataFormat- format of the data stored in the resourceconnectorProviderClassName- code for this type of connectorconnectorFrameworkName- name of the framework that the connector implements - default "Open Connector Framework (OCF)"connectorInterfaceLanguage- programming language of the connector's interfaceconnectorInterfaces- the interfaces that the connector implementstargetTechnologySource- organization implementing the target technologytargetTechnologyName- name of the target technologytargetTechnologyInterfaces- called interfaces the target technologytargetTechnologyVersions- supported versions of the target technologyrecognizedSecuredProperties- names of supported properties hidden from the client - for connection object.recognizedConfigurationProperties- names of supported properties used to configure the connector - for connection object.recognizedAdditionalProperties- names of any other properties for connection object.additionalProperties- any other properties.- Returns:
- id for the connector type
-
addConnectorType
protected String addConnectorType(String connectorCategoryGUID, String qualifiedName, String displayName, String description, String supportedAssetTypeName, String expectedDataFormat, String connectorProviderClassName, String connectorFrameworkName, String connectorInterfaceLanguage, List<String> connectorInterfaces, String targetTechnologySource, String targetTechnologyName, List<String> targetTechnologyInterfaces, List<String> targetTechnologyVersions, List<String> recognizedSecuredProperties, List<String> recognizedConfigurationProperties, List<String> recognizedAdditionalProperties, Map<String,String> additionalProperties)
Create a connector type entity.- Parameters:
connectorCategoryGUID- unique identifier of connector category - or null is not categorizedqualifiedName- unique name for the connector typedisplayName- display name for the connector typedescription- description about the connector typesupportedAssetTypeName- type of asset supported by this connectorexpectedDataFormat- format of the data stored in the resourceconnectorProviderClassName- code for this type of connectorconnectorFrameworkName- name of the framework that the connector implements - default "Open Connector Framework (OCF)"connectorInterfaceLanguage- programming language of the connector's interfaceconnectorInterfaces- the interfaces that the connector implementstargetTechnologySource- organization implementing the target technologytargetTechnologyName- name of the target technologytargetTechnologyInterfaces- called interfaces the target technologytargetTechnologyVersions- supported versions of the target technologyrecognizedSecuredProperties- names of supported properties hidden from the client - for connection object.recognizedConfigurationProperties- names of supported properties used to configure the connector - for connection object.recognizedAdditionalProperties- names of any other properties for connection object.additionalProperties- any other properties.- Returns:
- id for the connector type
-
addConnectorCategory
protected String addConnectorCategory(String connectorTypeDirectoryGUID, String qualifiedName, String displayName, String description, String targetTechnologySource, String targetTechnologyName, Map<String,Boolean> recognizedSecuredProperties, Map<String,Boolean> recognizedConfigurationProperties, Map<String,Boolean> recognizedAdditionalProperties, Map<String,String> additionalProperties)
Create a connector category entity.- Parameters:
connectorTypeDirectoryGUID- unique identifier of connector type directory that this connector connector belongs to - or null for an independent connector categoryqualifiedName- unique name for the connector categorydisplayName- display name for the connector categorydescription- description about the connector categorytargetTechnologySource- organization implementing the target technologytargetTechnologyName- name of the target technologyrecognizedSecuredProperties- names of supported properties hidden from the client - for connection object.recognizedConfigurationProperties- names of supported properties used to configure the connector - for connection object.recognizedAdditionalProperties- names of any other properties for connection object.additionalProperties- any other properties.- Returns:
- id for the connector type
-
addConnectorTypeDirectory
protected String addConnectorTypeDirectory(String qualifiedName, String displayName, String description, Map<String,String> additionalProperties)
Create a connector category entity.- Parameters:
qualifiedName- unique name for the connector type directorydisplayName- display name for the connector type directorydescription- description about the connector type directoryadditionalProperties- any other properties.- Returns:
- id for the connector type
-
addEndpoint
public String addEndpoint(String qualifiedName, String displayName, String description, String networkAddress, String protocol, Map<String,String> additionalProperties)
Create a endpoint entity.- Parameters:
qualifiedName- unique name for the endpointdisplayName- display name for the endpointdescription- description about the endpointnetworkAddress- location of the assetprotocol- protocol to use to connect to the assetadditionalProperties- any other properties.- Returns:
- id for the endpoint
-
addGlossary
public 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 glossarydisplayName- display name for the glossarydescription- description about the glossarylanguage- language that the glossary is written inusage- how the glossary should be usedexternalLink- link to materialscope- scope of the content.- Returns:
- id for the glossary
-
addCategory
public 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
public 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 glossarycategoryIds- unique identifiers of the categoriesqualifiedName- unique name of the termdisplayName- display name of the termdescription- description of the term- Returns:
- unique identifier of the term
-
addTerm
public 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 glossarycategoryIds- unique identifiers of the categoriesqualifiedName- unique name of the termdisplayName- display name of the termdescription- description of the termexamples- examples of the termisSpineObject- term is a spine objectisSpineAttribute- term is a spine attributecategoriesAsNames- when true the categories are specified as qualified names, otherwise they are guids.- Returns:
- unique identifier of the term
-
addCategoryToCategory
public void addCategoryToCategory(String parentCategoryId, String childCategoryId)
Link two categories together as part of the parent child hierarchy.- Parameters:
parentCategoryId- unique identifier for the parent categorychildCategoryId- unique identifier for the child category
-
addMoreInformationLink
public 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
public 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 termreferenceableId- identifier of referenceable
-
addIsATypeOfRelationship
public void addIsATypeOfRelationship(String specialTermQName, String generalizedTermQName)
Add an is-a-type-of relationship- Parameters:
specialTermQName- qualified name of the specialized termgeneralizedTermQName- qualified name of the generalized term
-
addRelatedTermRelationship
public void addRelatedTermRelationship(String conceptQName, String propertyQName)
-
-