Class RepositoryErrorHandler
java.lang.Object
org.odpi.openmetadata.commonservices.repositoryhandler.RepositoryErrorHandler
RepositoryErrorHandler provides common validation routines for the other handler classes
-
Constructor Summary
ConstructorDescriptionRepositoryErrorHandler
(OMRSRepositoryHelper repositoryHelper, String serviceName, String serverName) Typical constructor providing access to the repository connector for this access service.RepositoryErrorHandler
(OMRSRepositoryHelper repositoryHelper, String serviceName, String serverName, AuditLog auditLog) Typical constructor providing access to the repository connector for this access service. -
Method Summary
Modifier and TypeMethodDescriptionvoid
handleAmbiguousEntityName
(String name, String nameParameterName, String entityTypeName, List<EntityDetail> returnedEntities, String methodName) Throw an exception if multiple entities are returned when not expected.void
handleAmbiguousName
(String name, String nameParameterName, String entityTypeName, List<String> returnedEntityGUIDs, String methodName) Throw an exception if multiple entities are returned when not expected.void
handleAmbiguousRelationships
(String entityGUID, String entityTypeName, String relationshipTypeName, List<Relationship> returnedRelationships, String methodName) Throw an exception if multiple relationships are returned when not expected.void
handleBadEntityProxy
(Relationship relationship, int end, EntityProxy entityProxy, String methodName) Throw an exception to indicate that a retrieved entity proxy is missing critical information.void
handleDuplicateCreateRequest
(String typeName, String qualifiedName, String existingEntityGUID, String methodName) Report an error where an entity is being created with the same qualified name as an existing entity of the same type.void
handleEntityProxy
(Exception error, String entityGUID, String entityTypeName, String methodName, String guidParameterName) Throw an exception if there is a problem with the asset guidvoid
handleNoEntity
(String entityTypeGUID, String entityTypeName, InstanceProperties properties, String methodName) Throw an exception if it is not possible to create an entity.void
handleNoEntityForClassification
(String entityGUID, String classificationTypeGUID, String classificationTypeName, InstanceProperties properties, String methodName) Throw an exception if it is not possible to update an entity.void
handleNoRelationship
(String entityGUID, String entityTypeName, String relationshipTypeName, String methodName) Throw an exception if no relationships are returned when not expected.void
handleNotEffectiveElement
(String elementGUID, String elementTypeName, InstanceProperties properties, String methodName, String guidParameterName, Date effectiveDate) Throw an exception if there is a problem with and elements effectivity datesvoid
handleRepositoryError
(Exception error, String methodName, String localMethodName) Throw an exception if an unexpected repository error is receivedvoid
handleUnauthorizedUser
(String userId, String methodName) Throw an exception if the supplied userId is not authorized to perform a requestvoid
handleUnknownEntity
(Exception error, String entityGUID, String entityTypeName, String methodName, String guidParameterName) Throw an exception if there is a problem with the entity guidvoid
handleUnknownRelationship
(Exception error, String relationshipGUID, String relationshipTypeName, String methodName, String guidParameterName) Throw an exception if there is a problem with the relationship guidvoid
handleUnsupportedAnchorsType
(Exception error, String methodName, String typeName) Throw an exception if the supplied userId is not authorized to perform a requestvoid
handleUnsupportedParameter
(String methodName, String parameterName, String parameterValue) Throw an exception if the supplied parameter is invalid.void
handleUnsupportedProperty
(Exception error, String methodName, String propertyName) Throw an exception if the supplied property is not supportedvoid
handleUnsupportedType
(Exception error, String methodName, String typeName) Throw an exception if the supplied type name is not supported in the metadatavoid
logBadEntity
(String expectedTypeName, EntityDetail entity, String methodName) Throw an exception to indicate that a retrieved entity has missing information.void
logBadRelationship
(String expectedTypeName, Relationship relationship, String methodName) Throw an exception to indicate that a critical instance (typically the main entity) has not been passed to the converter.void
logNullInstance
(String expectedTypeName, String methodName) Throw an exception to indicate that a retrieved entity has missing information.void
validateInstanceType
(InstanceHeader instanceHeader, String expectedTypeName, String methodName, String localMethodName) Verify whether an instance is of a particular type or not.void
validateRepositoryConnector
(OMRSRepositoryConnector repositoryConnector, String methodName) Check that there is a repository connector.void
validateTypeIdentifiers
(String typeDefGUID, String guidParameterName, String typeDefName, String nameParameterName, String methodName, String localMethodName) Verify that the type's unique identifier and name are for a single valid type.
-
Constructor Details
-
RepositoryErrorHandler
public RepositoryErrorHandler(OMRSRepositoryHelper repositoryHelper, String serviceName, String serverName) Typical constructor providing access to the repository connector for this access service.- Parameters:
repositoryHelper
- access to the repository helper.serviceName
- name of this access serviceserverName
- name of this server
-
RepositoryErrorHandler
public RepositoryErrorHandler(OMRSRepositoryHelper repositoryHelper, String serviceName, String serverName, AuditLog auditLog) Typical constructor providing access to the repository connector for this access service.- Parameters:
repositoryHelper
- access to the repository helper.serviceName
- name of this access serviceserverName
- name of this serverauditLog
- logging destination
-
-
Method Details
-
validateRepositoryConnector
public void validateRepositoryConnector(OMRSRepositoryConnector repositoryConnector, String methodName) throws PropertyServerException Check that there is a repository connector.- Parameters:
methodName
- name of the method being calledrepositoryConnector
- connector object- Throws:
PropertyServerException
- exception thrown if the repository connector
-
validateInstanceType
public void validateInstanceType(InstanceHeader instanceHeader, String expectedTypeName, String methodName, String localMethodName) throws InvalidParameterException Verify whether an instance is of a particular type or not. If the expected type is null then the verification is successful. Any problems result in an exception.- Parameters:
instanceHeader
- the entity or relationship header.expectedTypeName
- name of the type to test formethodName
- calling methodlocalMethodName
- name of repository handler method- Throws:
InvalidParameterException
- one of the parameters is null or invalid.
-
validateTypeIdentifiers
public void validateTypeIdentifiers(String typeDefGUID, String guidParameterName, String typeDefName, String nameParameterName, String methodName, String localMethodName) throws PropertyServerException Verify that the type's unique identifier and name are for a single valid type. Any problems result in an exception. This is considered a logic error in the handlers or OMASs (or more likely in the mapper) which is why PropertyServerException is thrown.- Parameters:
typeDefGUID
- GUID of the type to test forguidParameterName
- name of parameter passing the GUIDtypeDefName
- name of the type to test fornameParameterName
- name of parameter passing the typeDefNamemethodName
- calling methodlocalMethodName
- name of repository handler method- Throws:
PropertyServerException
- The type identifiers are either unknown or mismatched
-
logNullInstance
Throw an exception to indicate that a retrieved entity has missing information.- Parameters:
expectedTypeName
- type name of instancemethodName
- calling method
-
logBadEntity
Throw an exception to indicate that a retrieved entity has missing information.- Parameters:
expectedTypeName
- type name of instanceentity
- the entity with the bad headermethodName
- calling method
-
handleBadEntityProxy
public void handleBadEntityProxy(Relationship relationship, int end, EntityProxy entityProxy, String methodName) Throw an exception to indicate that a retrieved entity proxy is missing critical information.- Parameters:
relationship
- the relationship with a bad entity proxy - not nullend
- number of the end where the proxy is storedentityProxy
- the entity proxy with the bad valuesmethodName
- calling method
-
logBadRelationship
public void logBadRelationship(String expectedTypeName, Relationship relationship, String methodName) Throw an exception to indicate that a critical instance (typically the main entity) has not been passed to the converter.- Parameters:
expectedTypeName
- type name of instancerelationship
- the relationship with the bad headermethodName
- calling method
-
handleDuplicateCreateRequest
public void handleDuplicateCreateRequest(String typeName, String qualifiedName, String existingEntityGUID, String methodName) throws InvalidParameterException Report an error where an entity is being created with the same qualified name as an existing entity of the same type.- Parameters:
typeName
- name of the typequalifiedName
- clashing qualified nameexistingEntityGUID
- existing entity found in the repositorymethodName
- calling method- Throws:
InvalidParameterException
- exception that reports this error
-
handleUnauthorizedUser
public void handleUnauthorizedUser(String userId, String methodName) throws UserNotAuthorizedException Throw an exception if the supplied userId is not authorized to perform a request- Parameters:
userId
- user name to validatemethodName
- name of the method making the call.- Throws:
UserNotAuthorizedException
- the userId is unauthorised for the request
-
handleUnsupportedProperty
public void handleUnsupportedProperty(Exception error, String methodName, String propertyName) throws InvalidParameterException Throw an exception if the supplied property is not supported- Parameters:
error
- caught exceptionmethodName
- name of the method making the callpropertyName
- name of the property in error- Throws:
InvalidParameterException
- invalid property
-
handleUnsupportedParameter
public void handleUnsupportedParameter(String methodName, String parameterName, String parameterValue) throws InvalidParameterException Throw an exception if the supplied parameter is invalid.- Parameters:
methodName
- name of the method making the callparameterName
- name of the parameter in errorparameterValue
- value of the parameter- Throws:
InvalidParameterException
- invalid property
-
handleUnsupportedType
public void handleUnsupportedType(Exception error, String methodName, String typeName) throws InvalidParameterException Throw an exception if the supplied type name is not supported in the metadata- Parameters:
error
- caught exceptionmethodName
- name of the method making the calltypeName
- name of the property in error- Throws:
InvalidParameterException
- invalid property
-
handleUnsupportedAnchorsType
public void handleUnsupportedAnchorsType(Exception error, String methodName, String typeName) throws PropertyServerException Throw an exception if the supplied userId is not authorized to perform a request- Parameters:
error
- caught exceptionmethodName
- name of the method making the calltypeName
- name of the property in error- Throws:
PropertyServerException
- no audit log
-
handleRepositoryError
public void handleRepositoryError(Exception error, String methodName, String localMethodName) throws PropertyServerException Throw an exception if an unexpected repository error is received- Parameters:
error
- caught exceptionmethodName
- name of the method called by the external partylocalMethodName
- name of method that called this error- Throws:
PropertyServerException
- unexpected exception from property server
-
handleUnknownEntity
public void handleUnknownEntity(Exception error, String entityGUID, String entityTypeName, String methodName, String guidParameterName) throws InvalidParameterException Throw an exception if there is a problem with the entity guid- Parameters:
error
- caught exception (or null)entityGUID
- unique identifier for the requested entityentityTypeName
- expected type of assetmethodName
- name of the method making the callguidParameterName
- name of the parameter that passed the GUID.- Throws:
InvalidParameterException
- unexpected exception from property server
-
handleNotEffectiveElement
public void handleNotEffectiveElement(String elementGUID, String elementTypeName, InstanceProperties properties, String methodName, String guidParameterName, Date effectiveDate) throws InvalidParameterException Throw an exception if there is a problem with and elements effectivity dates- Parameters:
elementGUID
- unique identifier for the requested entityelementTypeName
- expected type of elementproperties
- properties of the elementmethodName
- name of the method making the callguidParameterName
- name of the parameter that passed the GUIDeffectiveDate
- date to retrieve from- Throws:
InvalidParameterException
- unexpected exception from property server
-
handleUnknownRelationship
public void handleUnknownRelationship(Exception error, String relationshipGUID, String relationshipTypeName, String methodName, String guidParameterName) throws InvalidParameterException Throw an exception if there is a problem with the relationship guid- Parameters:
error
- caught exceptionrelationshipGUID
- unique identifier for the requested entityrelationshipTypeName
- expected type of assetmethodName
- name of the method making the callguidParameterName
- name of the parameter that passed the GUID.- Throws:
InvalidParameterException
- unexpected exception from property server
-
handleEntityProxy
public void handleEntityProxy(Exception error, String entityGUID, String entityTypeName, String methodName, String guidParameterName) throws InvalidParameterException Throw an exception if there is a problem with the asset guid- Parameters:
error
- caught exceptionentityGUID
- unique identifier for the requested entityentityTypeName
- expected type of assetmethodName
- name of the method making the callguidParameterName
- name of the parameter that passed the GUID.- Throws:
InvalidParameterException
- unexpected exception from property server
-
handleAmbiguousRelationships
public void handleAmbiguousRelationships(String entityGUID, String entityTypeName, String relationshipTypeName, List<Relationship> returnedRelationships, String methodName) throws PropertyServerException Throw an exception if multiple relationships are returned when not expected.- Parameters:
entityGUID
- unique identifier for the anchor entityentityTypeName
- name of the entity's typerelationshipTypeName
- expected type of relationshipreturnedRelationships
- list of relationships returnedmethodName
- name of the method making the call- Throws:
PropertyServerException
- unexpected response from property server
-
handleAmbiguousEntityName
public void handleAmbiguousEntityName(String name, String nameParameterName, String entityTypeName, List<EntityDetail> returnedEntities, String methodName) throws PropertyServerException Throw an exception if multiple entities are returned when not expected.- Parameters:
name
- requested name for the entitynameParameterName
- name of the parameterentityTypeName
- name of the entity's typereturnedEntities
- list of entities returnedmethodName
- name of the method making the call- Throws:
PropertyServerException
- unexpected response from property server
-
handleAmbiguousName
public void handleAmbiguousName(String name, String nameParameterName, String entityTypeName, List<String> returnedEntityGUIDs, String methodName) throws PropertyServerException Throw an exception if multiple entities are returned when not expected.- Parameters:
name
- requested name for the entitynameParameterName
- name of the parameterentityTypeName
- name of the entity's typereturnedEntityGUIDs
- list of entities returnedmethodName
- name of the method making the call- Throws:
PropertyServerException
- unexpected response from property server
-
handleNoRelationship
public void handleNoRelationship(String entityGUID, String entityTypeName, String relationshipTypeName, String methodName) throws PropertyServerException Throw an exception if no relationships are returned when not expected.- Parameters:
entityGUID
- unique identifier for the anchor entityentityTypeName
- name of the entity's typerelationshipTypeName
- expected type of relationshipmethodName
- name of the method making the call- Throws:
PropertyServerException
- unexpected response from property server
-
handleNoEntity
public void handleNoEntity(String entityTypeGUID, String entityTypeName, InstanceProperties properties, String methodName) throws PropertyServerException Throw an exception if it is not possible to create an entity.- Parameters:
entityTypeGUID
- unique identifier for the entity's typeentityTypeName
- name of the entity's typeproperties
- propertiesmethodName
- name of the method making the call- Throws:
PropertyServerException
- unexpected response from property server
-
handleNoEntityForClassification
public void handleNoEntityForClassification(String entityGUID, String classificationTypeGUID, String classificationTypeName, InstanceProperties properties, String methodName) throws PropertyServerException Throw an exception if it is not possible to update an entity.- Parameters:
entityGUID
- unique identifier of entityclassificationTypeGUID
- unique identifier for the classification's typeclassificationTypeName
- name of the classification's typeproperties
- propertiesmethodName
- name of the method making the call- Throws:
PropertyServerException
- unexpected response from property server
-