Class HandlerHelper
java.lang.Object
org.odpi.openmetadata.accessservices.assetlineage.handlers.HandlerHelper
The common handler provide common methods that is generic and reusable for other handlers.
-
Constructor Summary
ConstructorsConstructorDescriptionHandlerHelper
(InvalidParameterHandler invalidParameterHandler, OMRSRepositoryHelper repositoryHelper, OpenMetadataAPIGenericHandler<GenericStub> genericHandler, Converter converter, AssetLineageTypesValidator assetLineageTypesValidator, ClockService clockService) Construct the handler information needed to interact with the repository services -
Method Summary
Modifier and TypeMethodDescriptionprotected EntityDetail
addContextForRelationships
(String userId, EntityDetail startEntity, String relationshipTypeName, Set<GraphContext> context) Adds the relationships context for an entity, based on the relationship type.buildContextForLineageClassifications
(EntityDetail entityDetail) Builds the classification context for an entitybuildContextForRelationships
(String userId, String entityGUID, List<Relationship> relationships) Builds the relationships context for an entityfindEntitiesByType
(String userId, String entityTypeName, SearchProperties searchProperties, FindEntitiesParameters findEntitiesParameters) Retrieves a list of entities based on the search criteria passedgetEntityDetails
(String userId, String entityDetailGUID, String entityTypeName) Fetch the entity using the identifier and the type namegetLineageEntity
(EntityDetail entityDetail) Return the entity detail in open lineage formatCreate the search body for find entities searching entities updated after the given timeboolean
isDataStore
(String serviceName, EntityDetail entityDetail) Verifies if the entity is of type DataStore or subtypeboolean
isSchemaAttribute
(String serviceName, String typeName) Verifies if the entity is of type SchemaAttribute or subtypeboolean
isTable
(String serviceName, EntityDetail entityDetail) Verifies if the entity is of type RelationalTable or subtypeboolean
isTopic
(String serviceName, EntityDetail entityDetail) Verifies if the entity is of type Topic or subtypevoid
validateAsset
(EntityDetail entityDetail, String methodName, List<String> supportedZones) Validate asset's GUID and it being in the specific supported zones.
-
Constructor Details
-
HandlerHelper
public HandlerHelper(InvalidParameterHandler invalidParameterHandler, OMRSRepositoryHelper repositoryHelper, OpenMetadataAPIGenericHandler<GenericStub> genericHandler, Converter converter, AssetLineageTypesValidator assetLineageTypesValidator, ClockService clockService) Construct the handler information needed to interact with the repository services- Parameters:
invalidParameterHandler
- handler for invalid parametersrepositoryHelper
- helper used by the convertersgenericHandler
- handler for calling the repository servicesconverter
- converter used for creating entities in Lineage Warehouse formatassetLineageTypesValidator
- service for validating typesclockService
- clock service
-
-
Method Details
-
getEntityDetails
public EntityDetail getEntityDetails(String userId, String entityDetailGUID, String entityTypeName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException Fetch the entity using the identifier and the type name- Parameters:
userId
- the user identifierentityDetailGUID
- the entity identifierentityTypeName
- the entity type name- Returns:
- the entity
- Throws:
InvalidParameterException
- one of the parameters is null or invalid.UserNotAuthorizedException
- user not authorized to issue this request.PropertyServerException
- problem retrieving the entity.
-
findEntitiesByType
public Optional<List<EntityDetail>> findEntitiesByType(String userId, String entityTypeName, SearchProperties searchProperties, FindEntitiesParameters findEntitiesParameters) throws UserNotAuthorizedException, PropertyServerException, InvalidParameterException Retrieves a list of entities based on the search criteria passed- Parameters:
userId
- the user identityTypeName
- the name of the entity typesearchProperties
- searchProperties used in the filteringfindEntitiesParameters
- filtering used to reduce the scope of the search- Returns:
- Optional container for collection of EntityDetails (if any) matching the supplied parameters.
- Throws:
UserNotAuthorizedException
- the user is not authorized to make this request.PropertyServerException
- something went wrong with the REST call stack.InvalidParameterException
-
getSearchPropertiesAfterUpdateTime
Create the search body for find entities searching entities updated after the given time- Parameters:
time
- date in milliseconds after which the entities were updated- Returns:
- the search properties having the condition updateTime greater than the provided time
-
buildContextForRelationships
public RelationshipsContext buildContextForRelationships(String userId, String entityGUID, List<Relationship> relationships) throws UserNotAuthorizedException, PropertyServerException, InvalidParameterException Builds the relationships context for an entity- Parameters:
userId
- the unique identifier for the userentityGUID
- the guid of the entityrelationships
- the list of relationships for which the context is built- Returns:
- a set of
GraphContext
containing the lineage context for the relationships - Throws:
InvalidParameterException
- the invalid parameter exceptionPropertyServerException
- the property server exceptionUserNotAuthorizedException
- the user not authorized exception
-
buildContextForLineageClassifications
Builds the classification context for an entity- Parameters:
entityDetail
- the entity for retrieving the classifications attached to it- Returns:
- a set of
GraphContext
containing the lineage context for the classifications
-
addContextForRelationships
protected EntityDetail addContextForRelationships(String userId, EntityDetail startEntity, String relationshipTypeName, Set<GraphContext> context) throws OCFCheckedExceptionBase Adds the relationships context for an entity, based on the relationship type.- Parameters:
userId
- the unique identifier for the userstartEntity
- the start entity for the relationshipsrelationshipTypeName
- the type of the relationship for which the context is builtcontext
- the context to be updated- Throws:
OCFCheckedExceptionBase
- checked exception for reporting errors found when using OCF connectors
-
validateAsset
public void validateAsset(EntityDetail entityDetail, String methodName, List<String> supportedZones) throws InvalidParameterException Validate asset's GUID and it being in the specific supported zones.- Parameters:
entityDetail
- the entity detailmethodName
- the method namesupportedZones
- the supported zones- Throws:
InvalidParameterException
- the invalid parameter exception
-
getLineageEntity
Return the entity detail in open lineage format- Parameters:
entityDetail
- the entity detail- Returns:
- the entity detail in open lineage format
-
isDataStore
Verifies if the entity is of type DataStore or subtype- Parameters:
serviceName
- the service nameentityDetail
- the entity detail- Returns:
- true if the entity is of type Asset or subtype, false otherwise
-
isTable
Verifies if the entity is of type RelationalTable or subtype- Parameters:
serviceName
- the service nameentityDetail
- the entity detail- Returns:
- true if the entity is of type RelationalTable or subtype, false otherwise
-
isSchemaAttribute
Verifies if the entity is of type SchemaAttribute or subtype- Parameters:
serviceName
- the service nametypeName
- type of the entity- Returns:
- true if the entity is of type TabularColumn or subtype, false otherwise
-
isTopic
Verifies if the entity is of type Topic or subtype- Parameters:
serviceName
- the service nameentityDetail
- the entity detail- Returns:
- true if the entity is of type RelationalTable or subtype, false otherwise
-