Class OpenMetadataAPIGenericBuilder
java.lang.Object
org.odpi.openmetadata.commonservices.generichandlers.OpenMetadataAPIGenericBuilder
- Direct Known Subclasses:
AnnotationBuilder
,AnnotationReviewBuilder
,ContactDetailsBuilder
,EmbeddedConnectionBuilder
,InformalTagBuilder
,IntegrationReportBuilder
,ITInfrastructureBuilder
,LikeBuilder
,MetadataElementBuilder
,MetadataElementBuilder
,RatingBuilder
,ReferenceableBuilder
,SearchKeywordBuilder
OpenMetadataAPIGenericBuilder provides the common functions for building new entities, relationships and
classifications. Subtypes push details of their classifications to this supertype. They manage their instance properties.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected RepositoryErrorHandler
protected List<Classification>
protected InstanceStatus
protected Map<String,
Classification> protected OMRSRepositoryHelper
protected String
protected String
protected InstanceProperties
protected String
protected String
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
OpenMetadataAPIGenericBuilder
(String typeGUID, String typeName, Map<String, Object> extendedProperties, InstanceStatus instanceStatus, Date effectiveFrom, Date effectiveTo, List<Classification> existingClassifications, OMRSRepositoryHelper repositoryHelper, String serviceName, String serverName) Constructor for type specific creates.protected
OpenMetadataAPIGenericBuilder
(String typeGUID, String typeName, Map<String, Object> extendedProperties, InstanceStatus instanceStatus, List<Classification> existingClassifications, OMRSRepositoryHelper repositoryHelper, String serviceName, String serverName) Constructor for type specific creates.OpenMetadataAPIGenericBuilder
(String typeGUID, String typeName, OMRSRepositoryHelper repositoryHelper, String serviceName, String serverName) Constructor for working with classifications. -
Method Summary
Modifier and TypeMethodDescriptiongetEntityClassificationProperties
(String elementClassificationName, String methodName) Retrieve the requested classification and convert it to the OMRS format.Return a list of entity classifications that can be stored in the metadata repository.getExistingEntityClassificationHeader
(String elementClassificationName, String methodName) Retrieve the requested classification and convert it to the OMRS format.getInstanceProperties
(String methodName) Return the supplied bean properties in an InstanceProperties object.getInstanceProperties
(Map<String, InstancePropertyValue> propertyMap, Date effectiveFrom, Date effectiveTo) Return the properties based on the parameters supplied.Return the status that this entity should be created with.Return the bean's type idReturn the bean's type nameboolean
isClassificationSet
(String classificationName) Return whether a particular classification has been set up by the caller.void
setAnchors
(String userId, String anchorGUID, String methodName) Set up the "Anchors" classification for this entity.void
setClassification
(Classification newClassification) Add a classification to the entity.void
setEffectivityDates
(Date effectiveFrom, Date effectiveTo) Set up the effective dates for the entity.protected InstanceProperties
setEffectivityDates
(InstanceProperties properties) Set the supplied effectivity dates into the instance properties.void
setLatestChange
(String userId, int latestChangeTargetOrdinal, int latestChangeActionOrdinal, String classificationName, String attachmentGUID, String attachmentTypeName, String relationshipTypeName, String actionDescription, String methodName) Set up the LatestChange classification for an anchor entity.void
setTemplateClassifications
(String userId, String externalSourceGUID, String externalSourceName, List<Classification> templateClassifications, String methodName) Set up the list of classifications from a template entity.void
setTemplateSubstitute
(String userId, String methodName) Set up the "TemplateSubstitute" classification for this entity.protected InstanceProperties
updateInstanceProperties
(InstanceProperties properties, Map<String, Object> propertyMap, String methodName) Add the supplied properties to the supplied instance properties object.protected InstanceProperties
updateInstanceProperties
(InstanceProperties properties, Map<String, InstancePropertyValue> propertyMap) Add the supplied properties to the supplied instance properties object.
-
Field Details
-
errorHandler
-
repositoryHelper
-
serviceName
-
serverName
-
extendedProperties
-
typeGUID
-
typeName
-
instanceStatus
-
existingClassifications
-
newClassifications
-
templateProperties
-
-
Constructor Details
-
OpenMetadataAPIGenericBuilder
public OpenMetadataAPIGenericBuilder(String typeGUID, String typeName, OMRSRepositoryHelper repositoryHelper, String serviceName, String serverName) Constructor for working with classifications.- Parameters:
typeGUID
- type GUID to use for the entitytypeName
- type name to use for the entityrepositoryHelper
- helper methodsserviceName
- name of this OMASserverName
- name of local server
-
OpenMetadataAPIGenericBuilder
protected OpenMetadataAPIGenericBuilder(String typeGUID, String typeName, Map<String, Object> extendedProperties, InstanceStatus instanceStatus, List<Classification> existingClassifications, OMRSRepositoryHelper repositoryHelper, String serviceName, String serverName) Constructor for type specific creates.- Parameters:
typeGUID
- type GUID to use for the entitytypeName
- type name to use for the entityextendedProperties
- properties for the sub type (if any)instanceStatus
- status to use on the requestexistingClassifications
- classifications that are currently storedrepositoryHelper
- helper methodsserviceName
- name of this OMASserverName
- name of local server
-
OpenMetadataAPIGenericBuilder
protected OpenMetadataAPIGenericBuilder(String typeGUID, String typeName, Map<String, Object> extendedProperties, InstanceStatus instanceStatus, Date effectiveFrom, Date effectiveTo, List<Classification> existingClassifications, OMRSRepositoryHelper repositoryHelper, String serviceName, String serverName) Constructor for type specific creates.- Parameters:
typeGUID
- type GUID to use for the entitytypeName
- type name to use for the entityextendedProperties
- properties for the sub type (if any)instanceStatus
- status to use on the requesteffectiveFrom
- date to make the element active in the governance program (null for now)effectiveTo
- date to remove the element from the governance program (null = until deleted)existingClassifications
- classifications that are currently storedrepositoryHelper
- helper methodsserviceName
- name of this OMASserverName
- name of local server
-
-
Method Details
-
setClassification
Add a classification to the entity. This overrides any existing value for this classification.- Parameters:
newClassification
- classification object ready for the repository
-
isClassificationSet
Return whether a particular classification has been set up by the caller.- Parameters:
classificationName
- name of the classification to test for- Returns:
- boolean
-
setTemplateClassifications
public void setTemplateClassifications(String userId, String externalSourceGUID, String externalSourceName, List<Classification> templateClassifications, String methodName) throws InvalidParameterException Set up the list of classifications from a template entity.- Parameters:
userId
- calling userexternalSourceGUID
- guid of the software capability entity that represented the external source - null for localexternalSourceName
- name of the software capability entity that represented the external sourcetemplateClassifications
- list of classifications from the templatemethodName
- calling method- Throws:
InvalidParameterException
- the type of one of the classifications is not supported
-
setTemplateSubstitute
Set up the "TemplateSubstitute" classification for this entity. This is used when a new entity is being created, and it is known to be created as a template substitute.- Parameters:
userId
- calling usermethodName
- calling method- Throws:
PropertyServerException
- a null anchors GUID has been supplied
-
setAnchors
public void setAnchors(String userId, String anchorGUID, String methodName) throws PropertyServerException Set up the "Anchors" classification for this entity. This is used when a new entity is being created, and it is known to be connected to a specific anchor.- Parameters:
userId
- calling useranchorGUID
- unique identifier of the anchor entity that this entity is linked to directly or indirectlymethodName
- calling method- Throws:
PropertyServerException
- a null anchors GUID has been supplied
-
setEffectivityDates
Set up the effective dates for the entity. This determines- Parameters:
effectiveFrom
- date that the element is effective fromeffectiveTo
- date that the element is effective to
-
setLatestChange
public void setLatestChange(String userId, int latestChangeTargetOrdinal, int latestChangeActionOrdinal, String classificationName, String attachmentGUID, String attachmentTypeName, String relationshipTypeName, String actionDescription, String methodName) throws InvalidParameterException Set up the LatestChange classification for an anchor entity. This is typically used on the create of the anchor and other direct update actions on it. Other updates are made to it through the generic handler as attachments are added and changed.- Parameters:
userId
- calling userlatestChangeTargetOrdinal
- ordinal for the LatestChangeTarget enum valuelatestChangeActionOrdinal
- ordinal for the LatestChangeAction enum valueclassificationName
- name of a changed classificationattachmentGUID
- unique identifier of an entity attached to the anchorattachmentTypeName
- type name of the attached entityrelationshipTypeName
- relationship used to attach the entityactionDescription
- human readable description of the changemethodName
- calling method- Throws:
InvalidParameterException
- this classification is not supported
-
getTypeName
Return the bean's type name- Returns:
- string name
-
getTypeGUID
Return the bean's type id- Returns:
- string id
-
getInstanceStatus
Return the status that this entity should be created with.- Returns:
- instance status enum
-
getInstanceProperties
Return the supplied bean properties in an InstanceProperties object.- Parameters:
methodName
- name of the calling method- Returns:
- InstanceProperties object
- Throws:
InvalidParameterException
- there is a problem with the properties
-
getInstanceProperties
public InstanceProperties getInstanceProperties(Map<String, InstancePropertyValue> propertyMap, Date effectiveFrom, Date effectiveTo) throws InvalidParameterExceptionReturn the properties based on the parameters supplied. This is typically used for relationship and classification properties.- Parameters:
propertyMap
- map of property names to valueseffectiveFrom
- date to make the element active in the governance program (null for now)effectiveTo
- date to remove the element from the governance program (null = until deleted)- Returns:
- repository services properties
- Throws:
InvalidParameterException
- problem mapping properties
-
updateInstanceProperties
protected InstanceProperties updateInstanceProperties(InstanceProperties properties, Map<String, Object> propertyMap, String methodName) throws InvalidParameterExceptionAdd the supplied properties to the supplied instance properties object.- Parameters:
properties
- current accumulated propertiespropertyMap
- map of property names to valuesmethodName
- calling method- Returns:
- repository services properties
- Throws:
InvalidParameterException
- problem mapping properties
-
updateInstanceProperties
protected InstanceProperties updateInstanceProperties(InstanceProperties properties, Map<String, InstancePropertyValue> propertyMap) throws InvalidParameterExceptionAdd the supplied properties to the supplied instance properties object.- Parameters:
properties
- current accumulated propertiespropertyMap
- map of property names to values- Returns:
- repository services properties
- Throws:
InvalidParameterException
- problem mapping properties
-
setEffectivityDates
Set the supplied effectivity dates into the instance properties.- Parameters:
properties
- current accumulated properties- Returns:
- augmented instance properties
-
getEntityClassifications
Return a list of entity classifications that can be stored in the metadata repository.- Returns:
- list of entity classification objects
-
getExistingEntityClassificationHeader
public InstanceAuditHeader getExistingEntityClassificationHeader(String elementClassificationName, String methodName) throws InvalidParameterException Retrieve the requested classification and convert it to the OMRS format.- Parameters:
elementClassificationName
- name of the classification to retrieve/convertmethodName
- calling method- Returns:
- null if the classification is not found for an OMRS Classification bean for the named classification
- Throws:
InvalidParameterException
- the classification name parameter is null
-
getEntityClassificationProperties
public InstanceProperties getEntityClassificationProperties(String elementClassificationName, String methodName) throws InvalidParameterException Retrieve the requested classification and convert it to the OMRS format.- Parameters:
elementClassificationName
- name of the classification to retrieve/convertmethodName
- calling method- Returns:
- null or the appropriate properties
- Throws:
InvalidParameterException
- the classification name parameter is null
-