Class RepositoryErrorHandler
java.lang.Object
org.odpi.openmetadata.commonservices.repositoryhandler.RepositoryErrorHandler
RepositoryErrorHandler provides common validation routines for the other handler classes
-
Constructor Summary
ConstructorsConstructorDescriptionRepositoryErrorHandler
(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
handleAmbiguousRelationships
(String entityGUID, String entityTypeName, String relationshipTypeName, List<Relationship> returnedRelationships, String methodName) Throw an exception if multiple relationships are returned when not expected.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
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
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
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
-
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
-
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
-
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
-