Class RepositoryHandler
java.lang.Object
org.odpi.openmetadata.commonservices.repositoryhandler.RepositoryHandler
RepositoryHandler issues common calls to the open metadata repository to retrieve and store metadata. It converts the
repository service exceptions into access service exceptions. It is also responsible for validating provenance
and ensuring elements are only returned if they have appropriate effectivity dates. If no effectivity date is passed as a parameter,
then the time is assumed to be now. If a null effectivity date is supplied then it is assumed to be "any".
-
Constructor Summary
ConstructorDescriptionRepositoryHandler
(AuditLog auditLog, OMRSRepositoryHelper repositoryHelper, RepositoryErrorHandler errorHandler, OMRSMetadataCollection metadataCollection, int maxPageSize) Construct the basic handler with information needed to call the repository services and report any error. -
Method Summary
Modifier and TypeMethodDescriptionclassifyEntity
(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, EntityDetail entityDetail, String entityGUIDParameterName, String entityTypeName, String classificationTypeGUID, String classificationTypeName, ClassificationOrigin classificationOrigin, String classificationOriginGUID, InstanceProperties properties, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Add a new classification to an existing entity in the open metadata repository.int
countAttachedRelationshipsByType
(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Count the number of relationships of a specific type attached to a starting entity.createEntity
(String userId, String entityTypeGUID, String entityTypeName, String externalSourceGUID, String externalSourceName, InstanceProperties properties, List<Classification> initialClassifications, InstanceStatus instanceStatus, String methodName) Create a new entity in the open metadata repository with the specified instance status.createEntity
(String userId, String entityTypeGUID, String entityTypeName, String externalSourceGUID, String externalSourceName, InstanceProperties properties, InstanceStatus instanceStatus, String methodName) Create a new entity in the open metadata repository with the specified instance status.void
createExternalRelationship
(String userId, String relationshipTypeGUID, String externalSourceGUID, String externalSourceName, String end1GUID, String end2GUID, InstanceProperties relationshipProperties, String methodName) Create a relationship from an external source between two entities.createRelationship
(String userId, String relationshipTypeGUID, String externalSourceGUID, String externalSourceName, String end1GUID, String end2GUID, InstanceProperties relationshipProperties, String methodName) Create a relationship between two entities.void
declassifyEntity
(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, EntityDetail entity, String entityGUIDParameterName, String entityTypeName, String classificationTypeGUID, String classificationTypeName, InstanceAuditHeader existingClassificationHeader, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Remove an existing classification from an existing entity in the open metadata repository.void
ensureRelationship
(String userId, String end1TypeName, String externalSourceGUID, String externalSourceName, String end1GUID, String end2GUID, String relationshipTypeGUID, String relationshipTypeName, InstanceProperties relationshipProperties, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Ensure a relationship exists between two entities.findEntities
(String userId, String entityTypeGUID, List<String> entitySubtypeGUIDs, SearchProperties searchProperties, List<InstanceStatus> limitResultsByStatus, SearchClassifications searchClassifications, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) Return a list of entities that match the supplied criteria.findRelationships
(String userId, String relationshipTypeGUID, List<String> relationshipSubtypeGUIDs, SearchProperties searchProperties, List<InstanceStatus> limitResultsByStatus, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) Return a list of relationships that match the requested conditions.getEntitiesByAllProperties
(String userId, InstanceProperties properties, String entityTypeGUID, String sequencingPropertyName, List<InstanceStatus> limitResultsByStatus, List<String> limitResultsByClassification, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) Return the entities that match all supplied properties.getEntitiesByName
(String userId, InstanceProperties nameProperties, String entityTypeGUID, String sequencingPropertyName, List<InstanceStatus> limitResultsByStatus, List<String> limitResultsByClassification, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) Return the requested entity by name.getEntitiesByPropertyValue
(String userId, String entityTypeGUID, String searchCriteria, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, Date effectiveTime, String methodName) Return the entities that match all supplied properties.getEntitiesByType
(String userId, String entityTypeGUID, boolean forLineage, boolean forDuplicateProcessing, List<InstanceStatus> limitResultsByStatus, int startingFrom, int pageSize, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, Date effectiveTime, String methodName) Return the requested entities that match the requested type.getEntitiesByValue
(String userId, String propertyValue, String entityTypeGUID, String sequencingPropertyName, List<InstanceStatus> limitResultsByStatus, List<String> limitResultsByClassification, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) Return the entities that match all supplied properties.getEntitiesForClassificationType
(String userId, String entityTypeGUID, String classificationName, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) Return the list of entities by the requested classification type.getEntitiesForRelationshipEnd
(String userId, String startEntityGUID, String startEntityTypeName, boolean startAtEnd1, String relationshipTypeGUID, String relationshipTypeName, int startingFrom, int pageSize, String methodName) Return the list of entities at the requested end of the requested relationship type.getEntitiesForRelationshipType
(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, int startingFrom, int pageSize, String methodName) Deprecated.getEntitiesForRelationshipType
(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, String sequencingPropertyName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) Return the list of entities at the other end of the requested relationship type.getEntitiesForType
(String userId, String entityTypeGUID, String entityTypeName, List<InstanceStatus> limitResultsByStatus, List<String> limitResultsByClassification, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) Return the list of entities of the requested type.getEntitiesWithoutPropertyValues
(String userId, InstanceProperties properties, String entityTypeGUID, String sequencingPropertyName, List<InstanceStatus> limitResultsByStatus, List<String> limitResultsByClassification, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) Return the entities that match none of the supplied properties.getEntityByGUID
(String userId, String guid, String guidParameterName, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Return the requested entity, converting any errors from the repository services into the local OMAS exceptions.getEntityDetailHistory
(String userId, String guid, Date fromTime, Date toTime, int startingFrom, int pageSize, HistorySequencingOrder sequencingOrder, String methodName) Return all historical versions of an entity within the bounds of the provided timestamps.getEntityForRelationshipType
(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, String methodName) Return the entity at the other end of the requested relationship type.getEntityForRelationshipType
(String userId, EntityDetail startingEntity, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, String statusPropertyName, int statusThreshold, String returningEntityTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Return the entity at the other end of the requested relationship type.getEntityNeighborhood
(String userId, String entityGUID, List<String> entityTypeGUIDs, List<String> relationshipTypeGUIDs, List<InstanceStatus> limitResultsByStatus, List<String> limitResultsByClassification, Date asOfTime, int level, String methodName) Return the entities and relationships that radiate out from the supplied entity GUID.Return the metadata collection for the repository.getOtherEnd
(String startingEntityGUID, String startingEntityTypeName, Relationship relationship, int attachmentEntityEnd, String methodName) Return the entity proxy for the related entity.getOtherEnd
(String startingEntityGUID, Relationship relationship) Return the entity proxy for the related entity.getRelationshipBetweenEntities
(String userId, String entity1GUID, String entity1TypeName, String entity2GUID, String relationshipTypeGUID, String relationshipTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Return the first found relationship of the requested type connecting the supplied entities.getRelationshipBetweenEntities
(String userId, String entity1GUID, String entity1TypeName, String entity2GUID, String relationshipTypeGUID, String relationshipTypeName, String methodName) Deprecated.getRelationshipByGUID
(String userId, String relationshipGUID, String relationshipParameterName, String relationshipTypeName, Date effectiveTime, String methodName) Return the current version of a requested relationship.getRelationshipsBetweenEntities
(String userId, String entity1GUID, String entity1TypeName, String entity2GUID, String relationshipTypeGUID, String relationshipTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Return the list of relationships of the requested type connecting the supplied entities.getRelationshipsBetweenEntities
(String userId, EntityDetail entity1Entity, String entity1TypeName, String entity2GUID, String relationshipTypeGUID, String relationshipTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, Date effectiveFrom, Date effectiveTo, boolean exactMatchOnEffectivityDates, String methodName) Return the list of relationships of the requested type connecting the supplied entities with matching effectivity dates.getRelationshipsByType
(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) Return the list of relationships of the requested type connected to the starting entity.getRelationshipsByType
(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, String methodName) Return the list of relationships of the requested type connected to the starting entity.getRelationshipsByType
(String userId, EntityDetail startingEntity, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, String sequencingPropertyName, int startingFrom, int pageSize, Date effectiveTime, String methodName) Return the list of relationships of the requested type connected to the starting entity.getRelationshipsForType
(String userId, String relationshipTypeGUID, String relationshipTypeName, List<InstanceStatus> limitResultsByStatus, int startingFrom, int pageSize, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, Date effectiveTime, String methodName) Return the requested relationships that match the requested type.getUniqueEntityByName
(String userId, String nameValue, String nameParameterName, InstanceProperties nameProperties, String entityTypeGUID, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Return the requested entity by name.getUniqueEntityByName
(String userId, String nameValue, String nameParameterName, InstanceProperties nameProperties, String entityTypeGUID, String entityTypeName, String methodName) Return the requested entity by name.getUniqueParentRelationshipByType
(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, boolean parentAtEnd1, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Return the relationship of the requested type connected to the starting entity and where the starting entity is the logical child.getUniqueRelationshipByType
(String userId, String startingEntityGUID, String startingEntityTypeName, boolean startAtEnd1, String relationshipTypeGUID, String relationshipTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Return the list of relationships of the requested type connected to the starting entity where the starting entity is at the end indicated by the startAtEnd1 boolean parameter.getUniqueRelationshipByType
(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Return the relationship of the requested type connected to the starting entity.getUniqueRelationshipByType
(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, String methodName) Deprecated.boolean
isEntityATypeOf
(String userId, String guid, String guidParameterName, String entityTypeName, Date effectiveTime, String methodName) Test whether an entity is of a particular type or not.isEntityKnown
(String userId, String guid, String guidParameterName, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Validate that the supplied GUID is for a real entity that is effective.void
purgeEntity
(String userId, String obsoleteEntityGUID, String entityTypeGUID, String entityTypeName, String methodName) Purge an entity stored in a repository that does not support delete.void
purgeRelationship
(String userId, String relationshipTypeGUID, String relationshipTypeName, String relationshipGUID, String methodName) Purge a relationship between two entities.void
reclassifyEntity
(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeName, String classificationTypeGUID, String classificationTypeName, InstanceAuditHeader existingClassificationHeader, InstanceProperties newProperties, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Update the properties of an existing classification to an existing entity in the open metadata repository.void
removeAllRelationshipsOfType
(String userId, String externalSourceGUID, String externalSourceName, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Remove all relationships of a certain type starting at a particular entity.void
removeEntity
(String userId, String externalSourceGUID, String externalSourceName, String obsoleteEntityGUID, String obsoleteEntityGUIDParameterName, String entityTypeGUID, String entityTypeName, String validatingPropertyName, String validatingProperty, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Remove an entity from the open metadata repository if the validating properties match.void
removeEntity
(String userId, String externalSourceGUID, String externalSourceName, String obsoleteEntityGUID, String obsoleteEntityGUIDParameterName, String entityTypeGUID, String entityTypeName, String validatingPropertyName, String validatingProperty, String methodName) Remove an entity from the open metadata repository if the validating properties match.void
removeEntityOnLastUse
(String userId, String externalSourceGUID, String externalSourceName, String obsoleteEntityGUID, String guidParameterName, String entityTypeGUID, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, String methodName) Remove an entity from the repository if it is no longer connected to any other entity.void
removeRelationship
(String userId, String externalSourceGUID, String externalSourceName, String relationshipTypeName, String relationshipGUID, String methodName) Delete a relationship between two entities.void
removeRelationship
(String userId, String externalSourceGUID, String externalSourceName, Relationship relationship, String methodName) Delete a relationship between two entities.void
removeRelationshipBetweenEntities
(String userId, String externalSourceGUID, String externalSourceName, String relationshipTypeGUID, String relationshipTypeName, String entity1GUID, String entity1TypeName, String entity2GUID, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Delete a relationship between two specific entities.void
removeUniqueRelationshipByType
(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityTypeName, String relationshipTypeGUID, String relationshipTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Remove the relationship connected to the supplied entity.restoreEntity
(String userId, String externalSourceGUID, String externalSourceName, String deletedEntityGUID, String methodName) Restore the requested entity to the state it was before it was deleted.void
restoreRelationship
(String userId, String externalSourceGUID, String externalSourceName, String deletedRelationshipGUID, String methodName) Restore the requested relationship to the state it was before it was deleted.void
simpleDeleteEntity
(String userId, String obsoleteEntityGUID, String entityTypeGUID, String entityTypeName, String methodName) Remove an entity from the open metadata repository without additional checks.undoEntityUpdate
(String userId, String externalSourceGUID, String externalSourceName, String updatedEntityGUID, String methodName) Undo the last update to the requested entity.updateEntity
(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeGUID, String entityTypeName, InstanceProperties properties, List<Classification> classifications, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Update an existing entity in the open metadata repository.updateEntityProperties
(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeGUID, String entityTypeName, InstanceProperties updateProperties, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Update the properties of an existing entity in the open metadata repository.updateEntityProperties
(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, EntityDetail originalEntity, String entityTypeGUID, String entityTypeName, InstanceProperties newProperties, String methodName) Update the properties of an existing entity in the open metadata repository.void
updateEntityProperties
(String userId, String externalSourceGUID, String externalSourceName, InstanceHeader entityHeader, String entityTypeGUID, String entityTypeName, InstanceProperties properties, String methodName) Update an existing entity in the open metadata repository.void
updateEntityStatus
(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, EntityDetail entity, String entityTypeGUID, String entityTypeName, InstanceStatus instanceStatus, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Update an existing entity status in the open metadata repository.void
updateRelationshipProperties
(String userId, String externalSourceGUID, String externalSourceName, String relationshipGUID, InstanceProperties relationshipProperties, String methodName) Update the properties in the requested relationship.updateRelationshipProperties
(String userId, String externalSourceGUID, String externalSourceName, Relationship relationship, InstanceProperties relationshipProperties, String methodName) Update the properties in the requested relationship (if the proposed changes are different from the stored values).void
updateRelationshipStatus
(String userId, String externalSourceGUID, String externalSourceName, String relationshipGUID, String relationshipParameterName, String relationshipTypeName, InstanceStatus instanceStatus, String methodName) Update the status in the requested relationship.void
updateUniqueRelationshipByType
(String userId, String externalSourceGUID, String externalSourceName, String end1GUID, String end1TypeName, String end2GUID, String end2TypeName, String relationshipTypeGUID, String relationshipTypeName, InstanceProperties properties, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Ensure that the unique relationship between two entities is established.validateEntityGUID
(String userId, String guid, String guidParameterName, String entityTypeName, String methodName) Validate that the supplied GUID is for a real entity and map exceptions if not.validateRetrievedEntity
(String userId, EntityDetail entity, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) Validate an entity retrieved from the repository is suitable for the requester.validateRetrievedRelationship
(Relationship relationship, String relationshipTypeName, Date effectiveTime, String methodName) Validate a relationship retrieved from the repository is suitable for the requester.
-
Constructor Details
-
RepositoryHandler
public RepositoryHandler(AuditLog auditLog, OMRSRepositoryHelper repositoryHelper, RepositoryErrorHandler errorHandler, OMRSMetadataCollection metadataCollection, int maxPageSize) Construct the basic handler with information needed to call the repository services and report any error.- Parameters:
auditLog
- logging destinationrepositoryHelper
- helper class for manipulating OMRS objectserrorHandler
- generates error messages and exceptionsmetadataCollection
- access to the repository content.maxPageSize
- maximum number of instances that can be returned on a single call
-
-
Method Details
-
validateEntityGUID
public EntityDetail validateEntityGUID(String userId, String guid, String guidParameterName, String entityTypeName, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Validate that the supplied GUID is for a real entity and map exceptions if not.- Parameters:
userId
- user making the request.guid
- unique identifier of the entity.guidParameterName
- name of parameter that passed the guidentityTypeName
- expected type of asset.methodName
- name of method called.- Returns:
- retrieved entity
- Throws:
InvalidParameterException
- entity not known/not effectivePropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
validateRetrievedEntity
public EntityDetail validateRetrievedEntity(String userId, EntityDetail entity, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Validate an entity retrieved from the repository is suitable for the requester. There are three considerations: (1) Are the effectivity dates in the entity's properties indicating that this entity is effective at this time? (2) If the entity is a memento (ie it has the Memento classification attached) then it should only be returned if the request is for lineage. (3) If the entity is a known duplicate (ie it has the KnownDuplicate classification attached) and this request is not for duplicate processing then retrieve and combine the duplicate entities.- Parameters:
userId
- calling userentity
- retrieved entityentityTypeName
- unique name for type of entityforLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- time when the examined elements must be effectivemethodName
- calling method- Returns:
- entity to return to the caller - or null to mean the retrieved entity is not appropriate for the caller
- Throws:
InvalidParameterException
- bad parameterUserNotAuthorizedException
- user not authorized to issue this requestPropertyServerException
- problem accessing the repository services
-
validateRetrievedRelationship
public Relationship validateRetrievedRelationship(Relationship relationship, String relationshipTypeName, Date effectiveTime, String methodName) Validate a relationship retrieved from the repository is suitable for the requester. There are two considerations: (1) Are the effectivity dates in the relationship's properties indicating that this relationship is effective at this time? (2) is the type of the relationship correct..- Parameters:
relationship
- retrieved relationshiprelationshipTypeName
- unique name for type of relationshipeffectiveTime
- time when the examined elements must be effectivemethodName
- calling method- Returns:
- relationship to return to the caller - or null to mean the retrieved relationship is not appropriate for the caller
-
isEntityKnown
public EntityDetail isEntityKnown(String userId, String guid, String guidParameterName, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException Validate that the supplied GUID is for a real entity that is effective. Return null if not.- Parameters:
userId
- user making the request.guid
- unique identifier of the entity.guidParameterName
- name of parameter passing the GUIDentityTypeName
- expected type of asset.forLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- time when the element should be effectivemethodName
- name of method called.- Returns:
- retrieved entity
- Throws:
PropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
createEntity
public String createEntity(String userId, String entityTypeGUID, String entityTypeName, String externalSourceGUID, String externalSourceName, InstanceProperties properties, InstanceStatus instanceStatus, String methodName) throws UserNotAuthorizedException, PropertyServerException Create a new entity in the open metadata repository with the specified instance status. The setting of externalSourceGUID determines whether a local or a remote entity is created.- Parameters:
userId
- calling userentityTypeGUID
- type of entity to createentityTypeName
- name of the entity's typeexternalSourceGUID
- unique identifier (guid) for the external source.externalSourceName
- unique name for the external source.properties
- properties for the entityinstanceStatus
- initial status (needs to be valid for type)methodName
- name of calling method- Returns:
- unique identifier of new entity
- Throws:
PropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
createEntity
public String createEntity(String userId, String entityTypeGUID, String entityTypeName, String externalSourceGUID, String externalSourceName, InstanceProperties properties, List<Classification> initialClassifications, InstanceStatus instanceStatus, String methodName) throws UserNotAuthorizedException, PropertyServerException Create a new entity in the open metadata repository with the specified instance status. The setting of externalSourceGUID determines whether a local or a remote entity is created.- Parameters:
userId
- calling userentityTypeGUID
- type of entity to createentityTypeName
- name of the entity's typeexternalSourceGUID
- unique identifier (guid) for the external source.externalSourceName
- unique name for the external source.properties
- properties for the entityinitialClassifications
- list of classifications for the first version of this entity.instanceStatus
- initial status (needs to be valid for type)methodName
- name of calling method- Returns:
- unique identifier of new entity
- Throws:
PropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
updateEntityProperties
public EntityDetail updateEntityProperties(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeGUID, String entityTypeName, InstanceProperties updateProperties, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Update the properties of an existing entity in the open metadata repository.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external source.entityGUID
- unique identifier of entity to updateentityGUIDParameterName
- parameter supplying entityGUIDentityTypeGUID
- type of entity to createentityTypeName
- name of the entity's typeupdateProperties
- properties for the entityforLineage
- is this part of a lineage request?forDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Returns:
- updated entity
- Throws:
InvalidParameterException
- problem with the GUIDPropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
updateEntityProperties
public EntityDetail updateEntityProperties(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, EntityDetail originalEntity, String entityTypeGUID, String entityTypeName, InstanceProperties newProperties, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Update the properties of an existing entity in the open metadata repository.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external source.entityGUID
- unique identifier of entity to updateoriginalEntity
- entity retrieved from repository - must not be nullentityTypeGUID
- type of entity to createentityTypeName
- name of the entity's typenewProperties
- properties for the entitymethodName
- name of calling method- Returns:
- updated entity
- Throws:
InvalidParameterException
- problem with the GUIDPropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
updateEntity
public EntityDetail updateEntity(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeGUID, String entityTypeName, InstanceProperties properties, List<Classification> classifications, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Update an existing entity in the open metadata repository. Both the properties and the classifications are updated to the supplied values.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external source.entityGUID
- unique identifier entity to updateentityGUIDParameterName
- parameter supplying entityGUIDentityTypeGUID
- type of entity to createentityTypeName
- name of the entity's typeproperties
- properties for the entityclassifications
- classifications for entityforLineage
- 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
- name of calling method- Returns:
- returned entity containing the update
- Throws:
InvalidParameterException
- problem with the GUIDPropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
updateEntityProperties
public void updateEntityProperties(String userId, String externalSourceGUID, String externalSourceName, InstanceHeader entityHeader, String entityTypeGUID, String entityTypeName, InstanceProperties properties, String methodName) throws UserNotAuthorizedException, PropertyServerException Update an existing entity in the open metadata repository. The external source identifiers are used to validate the provenance of the entity before the update. If they are null, only local cohort entities can be updated. If they are not null, they need to match the instance's metadata collection identifiers.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external source.entityHeader
- unique identifier of entity to updateentityTypeGUID
- type of entity to createentityTypeName
- name of the entity's typeproperties
- properties for the entitymethodName
- name of calling method- Throws:
PropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
undoEntityUpdate
public EntityDetail undoEntityUpdate(String userId, String externalSourceGUID, String externalSourceName, String updatedEntityGUID, String methodName) throws UserNotAuthorizedException, PropertyServerException Undo the last update to the requested entity.- Parameters:
userId
- unique identifier for requesting user.externalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external source.updatedEntityGUID
- String unique identifier (guid) for the entity.methodName
- name of calling method- Returns:
- recovered entity
- Throws:
PropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
getEntityDetailHistory
public List<EntityDetail> getEntityDetailHistory(String userId, String guid, Date fromTime, Date toTime, int startingFrom, int pageSize, HistorySequencingOrder sequencingOrder, String methodName) throws UserNotAuthorizedException, PropertyServerException Return all historical versions of an entity within the bounds of the provided timestamps. To retrieve all historical versions of an entity, set both the 'fromTime' and 'toTime' to null.- Parameters:
userId
- unique identifier for requesting user.guid
- String unique identifier for the entity.fromTime
- the earliest point in time from which to retrieve historical versions of the entity (inclusive)toTime
- the latest point in time from which to retrieve historical versions of the entity (exclusive)startingFrom
- the starting element number of the historical versions to return. This is used when retrieving versions beyond the first page of results. Zero means start from the first element.pageSize
- the maximum number of result versions that can be returned on this request. Zero means unrestricted return results size.sequencingOrder
- Enum defining how the results should be ordered.methodName
- name of calling method- Returns:
- list of versions of an entity
- Throws:
PropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
updateEntityStatus
public void updateEntityStatus(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, EntityDetail entity, String entityTypeGUID, String entityTypeName, InstanceStatus instanceStatus, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Update an existing entity status in the open metadata repository. The external source identifiers are used to validate the provenance of the entity before the update. If they are null, only local cohort entities can be updated. If they are not null, they need to match the instance's metadata collection identifiers.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external source.entityGUID
- unique identifier of entity to updateentity
- current values of entityentityTypeGUID
- type of entity to updateentityTypeName
- name of the entity's typeinstanceStatus
- initial status (needs to be valid for type)forLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Throws:
InvalidParameterException
- problem with the GUIDPropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
classifyEntity
public EntityDetail classifyEntity(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, EntityDetail entityDetail, String entityGUIDParameterName, String entityTypeName, String classificationTypeGUID, String classificationTypeName, ClassificationOrigin classificationOrigin, String classificationOriginGUID, InstanceProperties properties, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException Add a new classification to an existing entity in the open metadata repository.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external sourceentityGUID
- unique identifier of entity to updateentityDetail
- retrieved entity (maybe null)entityGUIDParameterName
- parameter supplying entityGUIDentityTypeName
- type of entityclassificationTypeGUID
- type of classification to createclassificationTypeName
- name of the classification's typeclassificationOrigin
- is this classification assigned or propagated?classificationOriginGUID
- which entity did a propagated classification originate from?properties
- properties for the classificationforLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Returns:
- updated entity
- Throws:
PropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
reclassifyEntity
public void reclassifyEntity(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityGUIDParameterName, String entityTypeName, String classificationTypeGUID, String classificationTypeName, InstanceAuditHeader existingClassificationHeader, InstanceProperties newProperties, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Update the properties of an existing classification to an existing entity in the open metadata repository.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external source.entityGUID
- unique identifier of entity to updateentityGUIDParameterName
- parameter supplying entityGUIDentityTypeName
- type of entityclassificationTypeGUID
- type of classification to createclassificationTypeName
- name of the classification's typeexistingClassificationHeader
- current value of classificationnewProperties
- properties for the classificationforLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Throws:
InvalidParameterException
- invalid parameters passed - probably GUIDPropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
declassifyEntity
public void declassifyEntity(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, EntityDetail entity, String entityGUIDParameterName, String entityTypeName, String classificationTypeGUID, String classificationTypeName, InstanceAuditHeader existingClassificationHeader, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Remove an existing classification from an existing entity in the open metadata repository.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external source.entityGUID
- unique identifier of entity to updateentity
- full entity beanentityGUIDParameterName
- parameter name that passed the entityGUIDentityTypeName
- type of entityclassificationTypeGUID
- type of classification to createclassificationTypeName
- name of the classification's typeexistingClassificationHeader
- current value of classificationforLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Throws:
InvalidParameterException
- one of the parameters is invalid = probably the GUIDPropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
removeEntity
public void removeEntity(String userId, String externalSourceGUID, String externalSourceName, String obsoleteEntityGUID, String obsoleteEntityGUIDParameterName, String entityTypeGUID, String entityTypeName, String validatingPropertyName, String validatingProperty, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Remove an entity from the open metadata repository if the validating properties match. The external source identifiers are used to validate the provenance of the entity before the update. If they are null, only local cohort entities can be updated. If they are not null, they need to match the instance's metadata collection identifiers.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external source.obsoleteEntityGUID
- unique identifier of the entityobsoleteEntityGUIDParameterName
- name for unique identifier of the entityentityTypeGUID
- type of entity to deleteentityTypeName
- name of the entity's typevalidatingPropertyName
- name of property that should be in the entity if we have the correct one.validatingProperty
- value of property that should be in the entity if we have the correct one.methodName
- name of calling method- Throws:
PropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problemInvalidParameterException
- mismatch on properties
-
removeEntity
public void removeEntity(String userId, String externalSourceGUID, String externalSourceName, String obsoleteEntityGUID, String obsoleteEntityGUIDParameterName, String entityTypeGUID, String entityTypeName, String validatingPropertyName, String validatingProperty, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Remove an entity from the open metadata repository if the validating properties match. The external source identifiers are used to validate the provenance of the entity before the update. If they are null, only local cohort entities can be updated. If they are not null, they need to match the instance's metadata collection identifiers.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external source.obsoleteEntityGUID
- unique identifier of the entityobsoleteEntityGUIDParameterName
- name for unique identifier of the entityentityTypeGUID
- type of entity to deleteentityTypeName
- name of the entity's typevalidatingPropertyName
- name of property that should be in the entity if we have the correct one.validatingProperty
- value of property that should be in the entity if we have the correct one.forLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Throws:
PropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problemInvalidParameterException
- mismatch on properties
-
removeEntityOnLastUse
public void removeEntityOnLastUse(String userId, String externalSourceGUID, String externalSourceName, String obsoleteEntityGUID, String guidParameterName, String entityTypeGUID, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Remove an entity from the repository if it is no longer connected to any other entity.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external source.obsoleteEntityGUID
- unique identifier of the entityguidParameterName
- name of parameter that passed the entity guidentityTypeGUID
- unique identifier for the entity's typeentityTypeName
- name of the entity's typeforLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicatemethodName
- name of calling method- Throws:
InvalidParameterException
- the entity guid is not knownUserNotAuthorizedException
- user not authorized to issue this request.PropertyServerException
- problem accessing the property server
-
simpleDeleteEntity
public void simpleDeleteEntity(String userId, String obsoleteEntityGUID, String entityTypeGUID, String entityTypeName, String methodName) throws UserNotAuthorizedException, PropertyServerException Remove an entity from the open metadata repository without additional checks.- Parameters:
userId
- calling userobsoleteEntityGUID
- unique identifier of the entityentityTypeGUID
- type of entity to deleteentityTypeName
- name of the entity's typemethodName
- name of calling method- Throws:
PropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
purgeEntity
public void purgeEntity(String userId, String obsoleteEntityGUID, String entityTypeGUID, String entityTypeName, String methodName) throws UserNotAuthorizedException, PropertyServerException Purge an entity stored in a repository that does not support delete.- Parameters:
userId
- calling userobsoleteEntityGUID
- unique identifier of the entityentityTypeGUID
- type of entity to deleteentityTypeName
- name of the entity's typemethodName
- name of calling method- Throws:
PropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
restoreEntity
public EntityDetail restoreEntity(String userId, String externalSourceGUID, String externalSourceName, String deletedEntityGUID, String methodName) throws UserNotAuthorizedException, PropertyServerException Restore the requested entity to the state it was before it was deleted.- Parameters:
userId
- unique identifier for requesting user.externalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external source.deletedEntityGUID
- String unique identifier (guid) for the entity.methodName
- name of calling method- Returns:
- restored entity
- Throws:
PropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
getEntitiesForType
public List<EntityDetail> getEntitiesForType(String userId, String entityTypeGUID, String entityTypeName, List<InstanceStatus> limitResultsByStatus, List<String> limitResultsByClassification, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException Return the list of entities of the requested type.- Parameters:
userId
- user making the requestentityTypeGUID
- identifier for the entity's typeentityTypeName
- name for the entity's typelimitResultsByStatus
- only return elements that have the requested status (null means all statuseslimitResultsByClassification
- only return elements that have the requested classification(s)forLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicatestartingFrom
- initial position in the stored list.pageSize
- maximum number of definitions to return on this call.effectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Returns:
- retrieved entities or null
- Throws:
PropertyServerException
- problem accessing the property serverUserNotAuthorizedException
- security access problem
-
getEntityForRelationshipType
public EntityDetail getEntityForRelationshipType(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Return the entity at the other end of the requested relationship type. The assumption is that this is a 0..1 relationship so one entity (or null) is returned. If lots of relationships are found then the PropertyServerException is thrown.- Parameters:
userId
- user making the requeststartingEntityGUID
- starting entity's GUIDstartingEntityTypeName
- starting entity's type namerelationshipTypeGUID
- identifier for the relationship to followrelationshipTypeName
- type name for the relationship to followmethodName
- name of calling method- Returns:
- retrieved entity or null
- Throws:
InvalidParameterException
- bad starting entityPropertyServerException
- problem accessing the property serverUserNotAuthorizedException
- security access problem
-
getEntityForRelationshipType
public EntityDetail getEntityForRelationshipType(String userId, EntityDetail startingEntity, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, String statusPropertyName, int statusThreshold, String returningEntityTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Return the entity at the other end of the requested relationship type. The assumption is that this is a 0..1 relationship so one entity (or null) is returned. If lots of relationships are found then the PropertyServerException is thrown.- Parameters:
userId
- user making the requeststartingEntity
- starting entitystartingEntityTypeName
- starting entity's type namerelationshipTypeGUID
- identifier for the relationship to followrelationshipTypeName
- type name for the relationship to followstatusPropertyName
- name of the property to check that the status is acceptablestatusThreshold
- the value of status that the relationship property must be equal to or greaterreturningEntityTypeName
- the type of the resulting entityattachmentEntityEnd
- which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2forLineage
- the query is to support lineage retrievalforDuplicateProcessing
- the query is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Returns:
- retrieved entity or null
- Throws:
InvalidParameterException
- bad starting entityPropertyServerException
- problem accessing the property serverUserNotAuthorizedException
- security access problem
-
getEntitiesForRelationshipType
@Deprecated public List<EntityDetail> getEntitiesForRelationshipType(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, int startingFrom, int pageSize, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Deprecated.Return the list of entities at the other end of the requested relationship type. The returned entities will be from relationships that have an effective date of now.- Parameters:
userId
- user making the requeststartingEntityGUID
- starting entity's GUIDstartingEntityTypeName
- starting entity's type namerelationshipTypeGUID
- identifier for the relationship to followrelationshipTypeName
- type name for the relationship to followstartingFrom
- initial position in the stored list.pageSize
- maximum number of definitions to return on this call.methodName
- name of calling method- Returns:
- retrieved entities or null
- Throws:
InvalidParameterException
- the bean properties are invalidPropertyServerException
- problem accessing the property serverUserNotAuthorizedException
- security access problem
-
getEntitiesForRelationshipType
public List<EntityDetail> getEntitiesForRelationshipType(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, String sequencingPropertyName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Return the list of entities at the other end of the requested relationship type.- Parameters:
userId
- user making the requeststartingEntityGUID
- starting entity's GUIDstartingEntityTypeName
- starting entity's type namerelationshipTypeGUID
- identifier for the relationship to followrelationshipTypeName
- type name for the relationship to followsequencingPropertyName
- name of property used to sequence the results - null means no sequencingattachmentEntityEnd
- 0 means either end, 1 means only take from end 1, 2 means only take from end 2forLineage
- the query is to support lineage retrievalforDuplicateProcessing
- the query is for duplicate processing and so must not deduplicatestartingFrom
- initial position in the stored list.pageSize
- maximum number of definitions to return on this calleffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Returns:
- retrieved entities or null
- Throws:
InvalidParameterException
- the bean properties are invalidPropertyServerException
- problem accessing the property serverUserNotAuthorizedException
- security access problem
-
getEntitiesForClassificationType
public List<EntityDetail> getEntitiesForClassificationType(String userId, String entityTypeGUID, String classificationName, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException Return the list of entities by the requested classification type.- Parameters:
userId
- user making the requestentityTypeGUID
- starting entity's GUIDclassificationName
- type name for the classification to followforLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicatestartingFrom
- initial position in the stored list.pageSize
- maximum number of definitions to return on this call.effectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Returns:
- list of returned entities - null means no more to retrieve; list (even if empty) means more to receive
- Throws:
PropertyServerException
- problem accessing the property serverUserNotAuthorizedException
- security access problem
-
getEntitiesForRelationshipEnd
public List<EntityDetail> getEntitiesForRelationshipEnd(String userId, String startEntityGUID, String startEntityTypeName, boolean startAtEnd1, String relationshipTypeGUID, String relationshipTypeName, int startingFrom, int pageSize, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Return the list of entities at the requested end of the requested relationship type.- Parameters:
userId
- user making the requeststartEntityGUID
- starting entity's GUIDstartEntityTypeName
- starting entity's type namestartAtEnd1
- indicates that the match of the starting entity must be at end 1 (otherwise it is at end two)relationshipTypeGUID
- identifier for the relationship to followrelationshipTypeName
- type name for the relationship to followstartingFrom
- initial position in the stored list.pageSize
- maximum number of definitions to return on this call.methodName
- name of calling method- Returns:
- retrieved entities or null
- Throws:
InvalidParameterException
- bad parameter - probably GUIDPropertyServerException
- problem accessing the property serverUserNotAuthorizedException
- security access problem
-
getOtherEnd
Return the entity proxy for the related entity.- Parameters:
startingEntityGUID
- unique identifier of the starting entityrelationship
- relationship to another entity- Returns:
- proxy to the other entity.
-
getOtherEnd
public EntityProxy getOtherEnd(String startingEntityGUID, String startingEntityTypeName, Relationship relationship, int attachmentEntityEnd, String methodName) throws InvalidParameterException Return the entity proxy for the related entity.- Parameters:
startingEntityGUID
- unique identifier of the starting entitystartingEntityTypeName
- type of the entityrelationship
- relationship to another entityattachmentEntityEnd
- which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2methodName
- calling method- Returns:
- proxy to the other entity.
- Throws:
InvalidParameterException
- the type of the starting entity is incorrect
-
getEntityByGUID
public EntityDetail getEntityByGUID(String userId, String guid, String guidParameterName, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Return the requested entity, converting any errors from the repository services into the local OMAS exceptions.- Parameters:
userId
- calling userguid
- unique identifier for the entityguidParameterName
- name of the guid parameter for error handlingentityTypeName
- expected type of the entityforLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- calling method name- Returns:
- entity detail object
- Throws:
InvalidParameterException
- one of the parameters is null or invalid.UserNotAuthorizedException
- user not authorized to issue this request.PropertyServerException
- problem retrieving the entity.
-
isEntityATypeOf
public boolean isEntityATypeOf(String userId, String guid, String guidParameterName, String entityTypeName, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Test whether an entity is of a particular type or not.- Parameters:
userId
- calling userguid
- unique identifier of the entity.guidParameterName
- name of the parameter containing the guid.entityTypeName
- name of the type to test foreffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- calling method- Returns:
- boolean flag
- Throws:
InvalidParameterException
- one of the parameters is null or invalid.UserNotAuthorizedException
- user not authorized to issue this request.PropertyServerException
- problem retrieving the entity.
-
getEntitiesByName
public List<EntityDetail> getEntitiesByName(String userId, InstanceProperties nameProperties, String entityTypeGUID, String sequencingPropertyName, List<InstanceStatus> limitResultsByStatus, List<String> limitResultsByClassification, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException Return the requested entity by name. The sequencing property name ensure that all elements are returned in the same order to ensure none are lost in the paging process.- Parameters:
userId
- calling userIdnameProperties
- list of name properties to search onentityTypeGUID
- unique identifier of the entity's typesequencingPropertyName
- property name used to sequence the resultslimitResultsByStatus
- only return elements that have the requested status (null means all statuseslimitResultsByClassification
- only return elements that have the requested classification(s)forLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicatestartingFrom
- initial position in the stored listpageSize
- maximum number of definitions to return on this calleffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- calling method- Returns:
- list of returned entities - null means no more to retrieve; list (even if empty) means more to receive
- Throws:
UserNotAuthorizedException
- user not authorized to issue this request.PropertyServerException
- problem retrieving the entity.
-
getEntitiesByAllProperties
public List<EntityDetail> getEntitiesByAllProperties(String userId, InstanceProperties properties, String entityTypeGUID, String sequencingPropertyName, List<InstanceStatus> limitResultsByStatus, List<String> limitResultsByClassification, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException Return the entities that match all supplied properties.- Parameters:
userId
- calling userIdproperties
- list of name properties to search on.entityTypeGUID
- unique identifier of the entity's typesequencingPropertyName
- property name used to sequence the resultslimitResultsByStatus
- only return elements that have the requested status (null means all statuseslimitResultsByClassification
- only return elements that have the requested classification(s)forLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicatestartingFrom
- initial position in the stored list.pageSize
- maximum number of definitions to return on this call.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 returned entities - null means no more to retrieve; list (even if empty) means more to receive
- Throws:
UserNotAuthorizedException
- user not authorized to issue this request.PropertyServerException
- problem retrieving the entity.
-
getEntitiesWithoutPropertyValues
public List<EntityDetail> getEntitiesWithoutPropertyValues(String userId, InstanceProperties properties, String entityTypeGUID, String sequencingPropertyName, List<InstanceStatus> limitResultsByStatus, List<String> limitResultsByClassification, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException Return the entities that match none of the supplied properties.- Parameters:
userId
- calling userIdproperties
- list of name properties to search on.entityTypeGUID
- unique identifier of the entity's typesequencingPropertyName
- name of property to use when sequencing resultslimitResultsByStatus
- only return elements that have the requested status (null means all statuseslimitResultsByClassification
- only return elements that have the requested classification(s)forLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicatestartingFrom
- initial position in the stored list.pageSize
- maximum number of definitions to return on this call.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 returned entities - null means no more to retrieve; list (even if empty) means more to receive
- Throws:
UserNotAuthorizedException
- user not authorized to issue this request.PropertyServerException
- problem retrieving the entity.
-
getEntitiesByValue
public List<EntityDetail> getEntitiesByValue(String userId, String propertyValue, String entityTypeGUID, String sequencingPropertyName, List<InstanceStatus> limitResultsByStatus, List<String> limitResultsByClassification, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException Return the entities that match all supplied properties. The sequencing order is important if the caller is paging to ensure that all the results are returned.- Parameters:
userId
- calling userIdpropertyValue
- string value to search on - may be a RegExentityTypeGUID
- unique identifier of the entity's typelimitResultsByStatus
- only return elements that have the requested status (null means all statuseslimitResultsByClassification
- only return elements that have the requested classification(s)forLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicatestartingFrom
- initial position in the stored listsequencingPropertyName
- name of property used to sequence the results - null means no sequencingpageSize
- maximum number of definitions to return on this calleffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- calling method- Returns:
- list of returned entities - null means no more to retrieve; list (even if empty) means more to receive
- Throws:
UserNotAuthorizedException
- user not authorized to issue this request.PropertyServerException
- problem retrieving the entity.
-
getEntitiesByPropertyValue
public List<EntityDetail> getEntitiesByPropertyValue(String userId, String entityTypeGUID, String searchCriteria, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException Return the entities that match all supplied properties.- Parameters:
userId
- calling userentityTypeGUID
- unique identifier of the entity's typesearchCriteria
- String Java regular expression used to match against any of the String property values within entity instances of the specified type(s). This parameter must not be null.forLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicatestartingFrom
- initial position in the stored list.pageSize
- maximum number of definitions to return on this call.asOfTime
- Requests a historical query of the entity. Null means return the present values.sequencingOrder
- Enum defining how the results should be ordered.sequencingProperty
- String name of the property that is to be used to sequence the results. Null means do not sequence on a property name (see SequencingOrder).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 returned entities - null means no more to retrieve; list (even if empty) means more to receive
- Throws:
UserNotAuthorizedException
- user not authorized to issue this request.PropertyServerException
- problem retrieving the entity.
-
getUniqueEntityByName
public EntityDetail getUniqueEntityByName(String userId, String nameValue, String nameParameterName, InstanceProperties nameProperties, String entityTypeGUID, String entityTypeName, String methodName) throws UserNotAuthorizedException, PropertyServerException Return the requested entity by name.- Parameters:
userId
- calling userIdnameValue
- property name being searched fornameParameterName
- name of parameter that passed the name valuenameProperties
- list of name properties to search onentityTypeGUID
- type of entity to createentityTypeName
- name of the entity's typemethodName
- calling method- Returns:
- list of returned entities - null means no more to retrieve; list (even if empty) means more to receive
- Throws:
UserNotAuthorizedException
- user not authorized to issue this request.PropertyServerException
- problem retrieving the entity.
-
getUniqueEntityByName
public EntityDetail getUniqueEntityByName(String userId, String nameValue, String nameParameterName, InstanceProperties nameProperties, String entityTypeGUID, String entityTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException Return the requested entity by name.- Parameters:
userId
- calling userIdnameValue
- property name being searched fornameParameterName
- name of parameter that passed the name valuenameProperties
- list of name properties to search onentityTypeGUID
- type of entity to retrieveentityTypeName
- name of the entity's typeforLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- calling method- Returns:
- list of returned entities - null means no more to retrieve; list (even if empty) means more to receive
- Throws:
UserNotAuthorizedException
- user not authorized to issue this request.PropertyServerException
- problem retrieving the entity.
-
getEntitiesByType
public List<EntityDetail> getEntitiesByType(String userId, String entityTypeGUID, boolean forLineage, boolean forDuplicateProcessing, List<InstanceStatus> limitResultsByStatus, int startingFrom, int pageSize, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException Return the requested entities that match the requested type.- Parameters:
userId
- calling userIdentityTypeGUID
- type of entity requiredforLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicatelimitResultsByStatus
- By default, relationships in all non-DELETED statuses are returned. However, it is possible to specify a list of statuses (eg ACTIVE) to restrict the results to. Null means all status values except DELETED.startingFrom
- initial position in the stored list.pageSize
- maximum number of definitions to return on this call.asOfTime
- Requests a historical query of the entity. Null means return the present values.sequencingProperty
- String name of the entity property that is to be used to sequence the results. Null means do not sequence on a property name (see SequencingOrder).sequencingOrder
- Enum defining how the results should be ordered.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 returned entities - null means no more to retrieve; list (even if empty) means more to receive
- Throws:
UserNotAuthorizedException
- user not authorized to issue this request.PropertyServerException
- problem retrieving the entity.
-
findEntities
public List<EntityDetail> findEntities(String userId, String entityTypeGUID, List<String> entitySubtypeGUIDs, SearchProperties searchProperties, List<InstanceStatus> limitResultsByStatus, SearchClassifications searchClassifications, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException Return a list of entities that match the supplied criteria. The results can be returned over many pages.- Parameters:
userId
- unique identifier for requesting user.entityTypeGUID
- String unique identifier for the entity type of interest (null means any entity type).entitySubtypeGUIDs
- optional list of the unique identifiers (guids) for subtypes of the entityTypeGUID to include in the search results. Null means all subtypes.searchProperties
- Optional list of entity property conditions to match.limitResultsByStatus
- By default, entities in all statuses are returned. However, it is possible to specify a list of statuses (eg ACTIVE) to restrict the results to. Null means all status values.searchClassifications
- Optional list of entity classifications to match.asOfTime
- Requests a historical query of the entity. Null means return the present values.sequencingProperty
- String name of the entity property that is to be used to sequence the results. Null means do not sequence on a property name (see SequencingOrder).sequencingOrder
- Enum defining how the results should be ordered.forLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicatestartingFrom
- the starting element number of the entities to return. This is used when retrieving elements beyond the first page of results. Zero means start from the first element.pageSize
- the maximum number of result entities that can be returned on this request. Zero means unrestricted return results size.effectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- calling method- Returns:
- a list of entities matching the supplied criteria; null means no matching entities in the metadata collection; list (even if empty) means more to receive
- Throws:
UserNotAuthorizedException
- user not authorized to issue this request.PropertyServerException
- problem retrieving the entity.
-
findRelationships
public List<Relationship> findRelationships(String userId, String relationshipTypeGUID, List<String> relationshipSubtypeGUIDs, SearchProperties searchProperties, List<InstanceStatus> limitResultsByStatus, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException Return a list of relationships that match the requested conditions. The results can be received as a series of pages.- Parameters:
userId
- unique identifier for requesting user.relationshipTypeGUID
- String unique identifier for the entity type of interest (null means any entity type).relationshipSubtypeGUIDs
- optional list of the unique identifiers (guids) for subtypes of the relationshipTypeGUID to include in the search results. Null means all subtypes.searchProperties
- Optional list of entity property conditions to match.limitResultsByStatus
- By default, entities in all statuses are returned. However, it is possible to specify a list of statuses (eg ACTIVE) to restrict the results to. Null means all status values.asOfTime
- Requests a historical query of the entity. Null means return the present values.sequencingProperty
- String name of the entity property that is to be used to sequence the results. Null means do not sequence on a property name (see SequencingOrder).sequencingOrder
- Enum defining how the results should be ordered.startingFrom
- the starting element number of the entities to return. This is used when retrieving elements beyond the first page of results. Zero means start from the first element.pageSize
- the maximum number of result entities that can be returned on this request. Zero means unrestricted return results size.forDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- calling method- Returns:
- a list of relationships. Null means no matching relationships.
- Throws:
UserNotAuthorizedException
- user not authorized to issue this request.PropertyServerException
- problem retrieving the entity.
-
getRelationshipByGUID
public Relationship getRelationshipByGUID(String userId, String relationshipGUID, String relationshipParameterName, String relationshipTypeName, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Return the current version of a requested relationship.- Parameters:
userId
- user making the requestrelationshipGUID
- unique identifier for the relationshiprelationshipParameterName
- parameter name supplying relationshipGUIDrelationshipTypeName
- type name for the relationshipeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Returns:
- retrieved relationship or exception
- Throws:
InvalidParameterException
- the GUID is invalidUserNotAuthorizedException
- security access problemPropertyServerException
- problem accessing the property server
-
getRelationshipsByType
public List<Relationship> getRelationshipsByType(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Return the list of relationships of the requested type connected to the starting entity. The list is expected to be small.- Parameters:
userId
- user making the requeststartingEntityGUID
- starting entity's GUIDstartingEntityTypeName
- starting entity's type namerelationshipTypeGUID
- identifier for the relationship to followrelationshipTypeName
- type name for the relationship to followmethodName
- name of calling method- Returns:
- retrieved relationships or null
- Throws:
InvalidParameterException
- the GUID is invalidUserNotAuthorizedException
- security access problemPropertyServerException
- problem accessing the property server
-
getRelationshipsByType
public List<Relationship> getRelationshipsByType(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Return the list of relationships of the requested type connected to the starting entity. The list is expected to be small.- Parameters:
userId
- user making the requeststartingEntityGUID
- starting entity's GUIDstartingEntityTypeName
- starting entity's type namerelationshipTypeGUID
- identifier for the relationship to followrelationshipTypeName
- type name for the relationship to followattachmentEntityEnd
- 0 means either end, 1 means only take from end 1, 2 means only take from end 2forLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- is this call part of duplicate processing?startingFrom
- initial position in the stored list.pageSize
- maximum number of definitions to return on this call.effectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Returns:
- retrieved relationships or null
- Throws:
InvalidParameterException
- the starting entity GUID is invalidUserNotAuthorizedException
- security access problemPropertyServerException
- problem accessing the property server
-
getRelationshipsByType
public List<Relationship> getRelationshipsByType(String userId, EntityDetail startingEntity, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, String sequencingPropertyName, int startingFrom, int pageSize, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Return the list of relationships of the requested type connected to the starting entity. The list is expected to be small.- Parameters:
userId
- user making the requeststartingEntity
- starting entitystartingEntityTypeName
- starting entity's type namerelationshipTypeGUID
- identifier for the relationship to followrelationshipTypeName
- type name for the relationship to followattachmentEntityEnd
- 0 means either end, 1 means only take from end 1, 2 means only take from end 2forLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- is this call part of duplicate processing?sequencingPropertyName
- name of property used to sequence the results - null means no sequencingstartingFrom
- initial position in the stored list.pageSize
- maximum number of definitions to return on this call.effectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Returns:
- retrieved relationships or null
- Throws:
InvalidParameterException
- bad parametersUserNotAuthorizedException
- security access problemPropertyServerException
- problem accessing the property server
-
getRelationshipsForType
public List<Relationship> getRelationshipsForType(String userId, String relationshipTypeGUID, String relationshipTypeName, List<InstanceStatus> limitResultsByStatus, int startingFrom, int pageSize, Date asOfTime, String sequencingProperty, SequencingOrder sequencingOrder, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException Return the requested relationships that match the requested type.- Parameters:
userId
- calling userIdrelationshipTypeGUID
- type of relationship requiredrelationshipTypeName
- type of relationship requiredstartingFrom
- initial position in the stored list.pageSize
- maximum number of definitions to return on this call.asOfTime
- Requests a historical query of the relationship. Null means return the present values.sequencingProperty
- String name of the relationship property that is to be used to sequence the results. Null means do not sequence on a property name (see SequencingOrder).sequencingOrder
- Enum defining how the results should be ordered.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 returned relationship - null means no more to retrieve; list (even if empty) means more to receive
- Throws:
UserNotAuthorizedException
- user not authorized to issue this request.PropertyServerException
- problem retrieving the entity.
-
countAttachedRelationshipsByType
public int countAttachedRelationshipsByType(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException Count the number of relationships of a specific type attached to a starting entity.- Parameters:
userId
- user making the requeststartingEntityGUID
- starting entity's GUIDstartingEntityTypeName
- starting entity's type namerelationshipTypeGUID
- identifier for the relationship to followrelationshipTypeName
- type name for the relationship to followattachmentEntityEnd
- 0 means either end, 1 means only take from end 1, 2 means only take from end 2forLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Returns:
- count of the number of relationships
- Throws:
InvalidParameterException
- the starting entity GUID is invalidUserNotAuthorizedException
- user not authorized to issue this requestPropertyServerException
- problem accessing the property server
-
getRelationshipsBetweenEntities
public List<Relationship> getRelationshipsBetweenEntities(String userId, String entity1GUID, String entity1TypeName, String entity2GUID, String relationshipTypeGUID, String relationshipTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Return the list of relationships of the requested type connecting the supplied entities.- Parameters:
userId
- user making the requestentity1GUID
- entity at end 1 GUIDentity1TypeName
- entity 1's type nameentity2GUID
- entity at end 2 GUIDrelationshipTypeGUID
- identifier for the relationship to followrelationshipTypeName
- type name for the relationship to followattachmentEntityEnd
- 0 means either end, 1 means only take from end 1, 2 means only take from end 2forLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Returns:
- retrieved relationship or null
- Throws:
InvalidParameterException
- wrong type in entity 1UserNotAuthorizedException
- security access problemPropertyServerException
- problem accessing the property server
-
getRelationshipsBetweenEntities
public List<Relationship> getRelationshipsBetweenEntities(String userId, EntityDetail entity1Entity, String entity1TypeName, String entity2GUID, String relationshipTypeGUID, String relationshipTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, Date effectiveFrom, Date effectiveTo, boolean exactMatchOnEffectivityDates, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Return the list of relationships of the requested type connecting the supplied entities with matching effectivity dates.- Parameters:
userId
- user making the requestentity1Entity
- entity at end 1entity1TypeName
- entity 1's type nameentity2GUID
- entity at end 2 GUIDrelationshipTypeGUID
- identifier for the relationship to followrelationshipTypeName
- type name for the relationship to followattachmentEntityEnd
- 0 means either end, 1 means only take from end 1, 2 means only take from end 2forLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveFrom
- starting time for this relationship (null for all time)effectiveTo
- ending time for this relationship (null for all time)exactMatchOnEffectivityDates
- do the effectivity dates have to match exactly (ie this is for a create/update request) or is it enough that the retrieved effectivity data are equal or inside the supplied time period (as in a retrieve).methodName
- name of calling method- Returns:
- retrieved relationships or null
- Throws:
InvalidParameterException
- wrong type in entity 1; relationships found with incompatible effectivity datesUserNotAuthorizedException
- security access problemPropertyServerException
- problem accessing the property server
-
getRelationshipBetweenEntities
@Deprecated public Relationship getRelationshipBetweenEntities(String userId, String entity1GUID, String entity1TypeName, String entity2GUID, String relationshipTypeGUID, String relationshipTypeName, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Deprecated.Return the first found relationship of the requested type connecting the supplied entities.- Parameters:
userId
- user making the requestentity1GUID
- entity at end 1 GUIDentity1TypeName
- entity 1's type nameentity2GUID
- entity at end 2 GUIDrelationshipTypeGUID
- identifier for the relationship to followrelationshipTypeName
- type name for the relationship to followmethodName
- name of calling method- Returns:
- retrieved relationship or null
- Throws:
InvalidParameterException
- wrong type in entity 1UserNotAuthorizedException
- security access problemPropertyServerException
- problem accessing the property server
-
getRelationshipBetweenEntities
public Relationship getRelationshipBetweenEntities(String userId, String entity1GUID, String entity1TypeName, String entity2GUID, String relationshipTypeGUID, String relationshipTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Return the first found relationship of the requested type connecting the supplied entities.- Parameters:
userId
- user making the requestentity1GUID
- entity at end 1 GUIDentity1TypeName
- entity 1's type nameentity2GUID
- entity at end 2 GUIDrelationshipTypeGUID
- identifier for the relationship to followrelationshipTypeName
- type name for the relationship to followforLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Returns:
- retrieved relationship or null
- Throws:
InvalidParameterException
- wrong type in entity 1UserNotAuthorizedException
- security access problemPropertyServerException
- problem accessing the property server
-
getUniqueParentRelationshipByType
public Relationship getUniqueParentRelationshipByType(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, boolean parentAtEnd1, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException Return the relationship of the requested type connected to the starting entity and where the starting entity is the logical child. The assumption is that this is a 0..1 relationship so the first matching relationship is returned (or null if there is none).- Parameters:
userId
- user making the requeststartingEntityGUID
- starting entity's GUIDstartingEntityTypeName
- starting entity's type namerelationshipTypeGUID
- identifier for the relationship to followrelationshipTypeName
- type name for the relationship to followparentAtEnd1
- boolean flag to indicate which end has the parent elementforLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Returns:
- retrieved relationship or null
- Throws:
UserNotAuthorizedException
- security access problemPropertyServerException
- problem accessing the property server
-
getUniqueRelationshipByType
@Deprecated public Relationship getUniqueRelationshipByType(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, String methodName) throws UserNotAuthorizedException, PropertyServerException Deprecated.Return the relationship of the requested type connected to the starting entity. The assumption is that this is a 0..1 relationship so one relationship (or null) is returned. If lots of relationships are found then the PropertyServerException is thrown.- Parameters:
userId
- user making the requeststartingEntityGUID
- starting entity's GUIDstartingEntityTypeName
- starting entity's type namerelationshipTypeGUID
- identifier for the relationship to followrelationshipTypeName
- type name for the relationship to followmethodName
- name of calling method- Returns:
- retrieved relationship or null
- Throws:
UserNotAuthorizedException
- security access problemPropertyServerException
- problem accessing the property server
-
getUniqueRelationshipByType
public Relationship getUniqueRelationshipByType(String userId, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException Return the relationship of the requested type connected to the starting entity. The assumption is that this is a 0..1 relationship so one relationship (or null) is returned. If lots of relationships are found then the PropertyServerException is thrown.- Parameters:
userId
- user making the requeststartingEntityGUID
- starting entity's GUIDstartingEntityTypeName
- starting entity's type namerelationshipTypeGUID
- identifier for the relationship to followrelationshipTypeName
- type name for the relationship to followattachmentEntityEnd
- 0 means either end, 1 means only take from end 1, 2 means only take from end 2forLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Returns:
- retrieved relationship or null
- Throws:
UserNotAuthorizedException
- security access problemPropertyServerException
- problem accessing the property server
-
getUniqueRelationshipByType
public Relationship getUniqueRelationshipByType(String userId, String startingEntityGUID, String startingEntityTypeName, boolean startAtEnd1, String relationshipTypeGUID, String relationshipTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Return the list of relationships of the requested type connected to the starting entity where the starting entity is at the end indicated by the startAtEnd1 boolean parameter. The assumption is that this is a 0..1 relationship so one relationship (or null) is returned. If lots of relationships are found then the PropertyServerException is thrown.- Parameters:
userId
- user making the requeststartingEntityGUID
- starting entity's GUIDstartingEntityTypeName
- starting entity's type namestartAtEnd1
- is the starting entity at end 1 of the relationshiprelationshipTypeGUID
- identifier for the relationship to followrelationshipTypeName
- type name for the relationship to followforLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- is this part of duplicate processing?effectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Returns:
- retrieved relationship or null
- Throws:
InvalidParameterException
- one of the guids is no longer availableUserNotAuthorizedException
- security access problemPropertyServerException
- problem accessing the property server
-
createRelationship
public Relationship createRelationship(String userId, String relationshipTypeGUID, String externalSourceGUID, String externalSourceName, String end1GUID, String end2GUID, InstanceProperties relationshipProperties, String methodName) throws UserNotAuthorizedException, PropertyServerException Create a relationship between two entities. The value of external source GUID determines if it is local or remote.- Parameters:
userId
- calling userrelationshipTypeGUID
- unique identifier of the relationship's typeexternalSourceGUID
- unique identifier (guid) for the external source.externalSourceName
- unique name for the external source.end1GUID
- entity to store at end 1end2GUID
- entity to store at end 2relationshipProperties
- properties for the relationshipmethodName
- name of calling method- Returns:
- Relationship structure with the new header, requested entities and properties or null.
- Throws:
PropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
ensureRelationship
public void ensureRelationship(String userId, String end1TypeName, String externalSourceGUID, String externalSourceName, String end1GUID, String end2GUID, String relationshipTypeGUID, String relationshipTypeName, InstanceProperties relationshipProperties, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Ensure a relationship exists between two entities. The setting of external source GUID determines if the relationship is external or not- Parameters:
userId
- calling userend1TypeName
- unique name of the end 1's typeexternalSourceGUID
- unique identifier (guid) for the external source.externalSourceName
- unique name for the external source.end1GUID
- entity to store at end 1end2GUID
- entity to store at end 2relationshipTypeGUID
- unique identifier of the relationship's typerelationshipTypeName
- unique name of the relationship's typerelationshipProperties
- properties for the relationshipforLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Throws:
InvalidParameterException
- type of end 1 is not correctPropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
createExternalRelationship
public void createExternalRelationship(String userId, String relationshipTypeGUID, String externalSourceGUID, String externalSourceName, String end1GUID, String end2GUID, InstanceProperties relationshipProperties, String methodName) throws UserNotAuthorizedException, PropertyServerException Create a relationship from an external source between two entities.- Parameters:
userId
- calling userrelationshipTypeGUID
- unique identifier of the relationship's typeexternalSourceGUID
- unique identifier (guid) for the external source.externalSourceName
- unique name for the external source.end1GUID
- entity to store at end 1end2GUID
- entity to store at end 2relationshipProperties
- properties for the relationshipmethodName
- name of calling method- Throws:
PropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
removeRelationship
public void removeRelationship(String userId, String externalSourceGUID, String externalSourceName, String relationshipTypeName, String relationshipGUID, String methodName) throws UserNotAuthorizedException, PropertyServerException Delete a relationship between two entities. If delete is not supported, purge is used. The external source identifiers are used to validate the provenance of the entity before the update. If they are null, only local cohort entities can be updated. If they are not null, they need to match the instance's metadata collection identifiers.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external source.relationshipTypeName
- name of the type of relationship to deleterelationshipGUID
- unique identifier of the relationship to deletemethodName
- name of calling method- Throws:
PropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
removeRelationship
public void removeRelationship(String userId, String externalSourceGUID, String externalSourceName, Relationship relationship, String methodName) throws UserNotAuthorizedException, PropertyServerException Delete a relationship between two entities. If delete is not supported, purge is used. The external source identifiers are used to validate the provenance of the entity before the update. If they are null, only local cohort entities can be updated. If they are not null, they need to match the instance's metadata collection identifiers.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external source.relationship
- relationship to deletemethodName
- name of calling method- Throws:
PropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
purgeRelationship
public void purgeRelationship(String userId, String relationshipTypeGUID, String relationshipTypeName, String relationshipGUID, String methodName) throws UserNotAuthorizedException, PropertyServerException Purge a relationship between two entities. Used if delete fails.- Parameters:
userId
- calling userrelationshipTypeGUID
- unique identifier of the type of relationship to deleterelationshipTypeName
- name of the type of relationship to deleterelationshipGUID
- unique identifier of the relationship to deletemethodName
- name of calling method- Throws:
PropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
restoreRelationship
public void restoreRelationship(String userId, String externalSourceGUID, String externalSourceName, String deletedRelationshipGUID, String methodName) throws UserNotAuthorizedException, PropertyServerException Restore the requested relationship to the state it was before it was deleted.- Parameters:
userId
- unique identifier for requesting user.externalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external source.deletedRelationshipGUID
- String unique identifier (guid) for the relationship.methodName
- name of calling method- Throws:
PropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
removeAllRelationshipsOfType
public void removeAllRelationshipsOfType(String userId, String externalSourceGUID, String externalSourceName, String startingEntityGUID, String startingEntityTypeName, String relationshipTypeGUID, String relationshipTypeName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException, InvalidParameterException Remove all relationships of a certain type starting at a particular entity.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external source.startingEntityGUID
- identifier of starting entitystartingEntityTypeName
- type of entityrelationshipTypeGUID
- unique identifier of the relationship typerelationshipTypeName
- unique name of the relationship typeforLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- is this processing part of duplicate processing?effectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- calling method- Throws:
InvalidParameterException
- bad parameterPropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
removeRelationshipBetweenEntities
public void removeRelationshipBetweenEntities(String userId, String externalSourceGUID, String externalSourceName, String relationshipTypeGUID, String relationshipTypeName, String entity1GUID, String entity1TypeName, String entity2GUID, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException, InvalidParameterException Delete a relationship between two specific entities. The relationship must have compatible provenance to allow the update to proceed.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source.externalSourceName
- unique name for the external source.relationshipTypeGUID
- unique identifier of the type of relationship to deleterelationshipTypeName
- name of the type of relationship to deleteentity1GUID
- unique identifier of the entity at end 1 of the relationship to deleteentity1TypeName
- type name of the entity at end 1 of the relationship to deleteentity2GUID
- unique identifier of the entity at end 1 of the relationship to deleteforLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method- Throws:
InvalidParameterException
- type of entity 1 is not correctPropertyServerException
- problem accessing property serverUserNotAuthorizedException
- security access problem
-
updateRelationshipProperties
public Relationship updateRelationshipProperties(String userId, String externalSourceGUID, String externalSourceName, Relationship relationship, InstanceProperties relationshipProperties, String methodName) throws UserNotAuthorizedException, PropertyServerException Update the properties in the requested relationship (if the proposed changes are different from the stored values).- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source.externalSourceName
- unique name for the external source.relationship
- relationship to update.relationshipProperties
- new properties for relationshipmethodName
- name of calling method.- Returns:
- updated relationship
- Throws:
PropertyServerException
- there is a problem communicating with the repository.UserNotAuthorizedException
- security access problem
-
updateRelationshipProperties
public void updateRelationshipProperties(String userId, String externalSourceGUID, String externalSourceName, String relationshipGUID, InstanceProperties relationshipProperties, String methodName) throws UserNotAuthorizedException, PropertyServerException Update the properties in the requested relationship. The relationship is retrieved first to validate the GUID and then updated if necessary (ie if the proposed changes are different from the stored values).- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source.externalSourceName
- unique name for the external source.relationshipGUID
- unique identifier of the relationship.relationshipProperties
- new properties for relationshipmethodName
- name of calling method.- Throws:
PropertyServerException
- there is a problem communicating with the repository.UserNotAuthorizedException
- security access problem
-
updateRelationshipStatus
public void updateRelationshipStatus(String userId, String externalSourceGUID, String externalSourceName, String relationshipGUID, String relationshipParameterName, String relationshipTypeName, InstanceStatus instanceStatus, String methodName) throws UserNotAuthorizedException, PropertyServerException Update the status in the requested relationship.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external source.relationshipGUID
- unique identifier of the relationship.relationshipParameterName
- parameter name supplying relationshipGUIDrelationshipTypeName
- type name for the relationshipinstanceStatus
- new InstanceStatus for the entity.methodName
- name of calling method.- Throws:
PropertyServerException
- there is a problem communicating with the repository.UserNotAuthorizedException
- security access problem
-
updateUniqueRelationshipByType
public void updateUniqueRelationshipByType(String userId, String externalSourceGUID, String externalSourceName, String end1GUID, String end1TypeName, String end2GUID, String end2TypeName, String relationshipTypeGUID, String relationshipTypeName, InstanceProperties properties, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException Ensure that the unique relationship between two entities is established. It is possible that there is already a relationship of this type between either of the entities and another and so that needs to be removed first.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source.externalSourceName
- unique name for the external source.end1GUID
- unique identifier of the entity for end 1 of the relationship.end1TypeName
- type of the entity for end 1end2GUID
- unique identifier of the entity for end 2 of the relationship.end2TypeName
- type of the entity for end 2relationshipTypeGUID
- unique identifier of the type of relationship to create.relationshipTypeName
- name of the type of relationship to create.properties
- new properties to useforLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- name of calling method.- Throws:
PropertyServerException
- there is a problem communicating with the repository.UserNotAuthorizedException
- security access problem
-
removeUniqueRelationshipByType
public void removeUniqueRelationshipByType(String userId, String externalSourceGUID, String externalSourceName, String entityGUID, String entityTypeName, String relationshipTypeGUID, String relationshipTypeName, int attachmentEntityEnd, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws UserNotAuthorizedException, PropertyServerException Remove the relationship connected to the supplied entity. Due to the definition of the relationship, only one is expected.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier (guid) for the external source, or null for local.externalSourceName
- unique name for the external source.entityGUID
- unique identity of the starting entity.entityTypeName
- type name of entityrelationshipTypeGUID
- unique identifier of the relationship's typerelationshipTypeName
- name of the relationship's typeattachmentEntityEnd
- which relationship end should the attached entity be located? 0=either end; 1=end1; 2=end2forLineage
- the request is to support lineage retrieval this means entities with the Memento classification can be returnedforDuplicateProcessing
- the request is for duplicate processing and so must not deduplicateeffectiveTime
- the time that the retrieved elements must be effective for (null for any time, new Date() for now)methodName
- calling method- Throws:
UserNotAuthorizedException
- security access problemPropertyServerException
- there is a problem communicating with the repository.
-
getEntityNeighborhood
public InstanceGraph getEntityNeighborhood(String userId, String entityGUID, List<String> entityTypeGUIDs, List<String> relationshipTypeGUIDs, List<InstanceStatus> limitResultsByStatus, List<String> limitResultsByClassification, Date asOfTime, int level, String methodName) throws UserNotAuthorizedException, PropertyServerException Return the entities and relationships that radiate out from the supplied entity GUID. The results are scoped both the instance type guids and the level.- Parameters:
userId
- unique identifier for requesting user.entityGUID
- the starting point of the query.entityTypeGUIDs
- list of entity types to include in the query results. Null means include all entities found, irrespective of their type.relationshipTypeGUIDs
- list of relationship types to include in the query results. Null means include all relationships found, irrespective of their type.limitResultsByStatus
- By default, relationships in all statuses are returned. However, it is possible to specify a list of statuses (eg ACTIVE) to restrict the results to. Null means all status values.limitResultsByClassification
- List of classifications that must be present on all returned entities.asOfTime
- Requests a historical query of the relationships for the entity. Null means return the present values.level
- the number of the relationships out from the starting entity that the query will traverse to gather results.methodName
- name of calling method.- Returns:
- InstanceGraph the sub-graph that represents the returned linked entities and their relationships or null.
- Throws:
UserNotAuthorizedException
- security access problemPropertyServerException
- problem accessing the property server
-
getMetadataCollection
Return the metadata collection for the repository. This is used by services that need function that is not supported by this class.- Returns:
- metadata collection for the repository
-