Class SubjectAreaHandler
java.lang.Object
org.odpi.openmetadata.frameworkservices.omf.client.handlers.SubjectAreaHandler
Subject area manager describes how to maintain and query subject area definitions.
-
Constructor Summary
ConstructorsConstructorDescriptionSubjectAreaHandler
(String localServerName, String serverName, String serverPlatformURLRoot, String userId, String password, AuditLog auditLog, String accessServiceURLMarker, String serviceName, int maxPageSize) Create a new client that passes userId and password in each HTTP request.SubjectAreaHandler
(String localServerName, String serverName, String serverPlatformURLRoot, AuditLog auditLog, String accessServiceURLMarker, String serviceName, int maxPageSize) Create a new client with no authentication embedded in the HTTP request. -
Method Summary
Modifier and TypeMethodDescriptioncreateSubjectArea
(String userId, String externalSourceGUID, String externalSourceName, String anchorGUID, boolean isOwnAnchor, String anchorScopeGUID, SubjectAreaProperties properties, String parentGUID, String parentRelationshipTypeName, ElementProperties parentRelationshipProperties, boolean parentAtEnd1, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) Create a new subject area.createSubjectAreaFromTemplate
(String userId, String externalSourceGUID, String externalSourceName, String anchorGUID, boolean isOwnAnchor, String anchorScopeGUID, Date effectiveFrom, Date effectiveTo, String templateGUID, ElementProperties replacementProperties, Map<String, String> placeholderProperties, String parentGUID, String parentRelationshipTypeName, ElementProperties parentRelationshipProperties, boolean parentAtEnd1, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) Create a new metadata element to represent a subject area using an existing element as a template.void
deleteSubjectArea
(String userId, String externalSourceGUID, String externalSourceName, String subjectAreaGUID, boolean cascadedDelete, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) Delete a subject area.void
detachSubjectAreas
(String userId, String externalSourceGUID, String externalSourceName, String subjectAreaGUID, String nestedSubjectAreaGUID, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) Detach an actor profile from a subject area.findSubjectAreas
(String userId, String searchString, TemplateFilter templateFilter, List<ElementStatus> limitResultsByStatus, Date asOfTime, SequencingOrder sequencingOrder, String sequencingProperty, int startFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) Retrieve the list of subject areas metadata elements that contain the search string.getSubjectAreaByGUID
(String userId, String subjectAreaGUID, Date asOfTime, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) Return the properties of a specific subject area.getSubjectAreasByName
(String userId, String name, TemplateFilter templateFilter, List<ElementStatus> limitResultsByStatus, Date asOfTime, SequencingOrder sequencingOrder, String sequencingProperty, int startFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) Returns the list of subject areas with a particular name.void
linkSubjectAreas
(String userId, String externalSourceGUID, String externalSourceName, String subjectAreaGUID, String nestedSubjectAreaGUID, RelationshipProperties relationshipProperties, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) Attach a profile to a subject area.void
updateSubjectArea
(String userId, String externalSourceGUID, String externalSourceName, String subjectAreaGUID, boolean replaceAllProperties, SubjectAreaProperties properties, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) Update the properties of a subject area.
-
Constructor Details
-
SubjectAreaHandler
public SubjectAreaHandler(String localServerName, String serverName, String serverPlatformURLRoot, AuditLog auditLog, String accessServiceURLMarker, String serviceName, int maxPageSize) throws InvalidParameterException Create a new client with no authentication embedded in the HTTP request.- Parameters:
localServerName
- name of this server (view server)serverName
- name of the server to connect toserverPlatformURLRoot
- the network address of the server running the OMAS REST servicesauditLog
- logging destinationaccessServiceURLMarker
- which access service to callserviceName
- local service namemaxPageSize
- maximum number of results supported by this server- Throws:
InvalidParameterException
- there is a problem creating the client-side components to issue any REST API calls.
-
SubjectAreaHandler
public SubjectAreaHandler(String localServerName, String serverName, String serverPlatformURLRoot, String userId, String password, AuditLog auditLog, String accessServiceURLMarker, String serviceName, int maxPageSize) throws InvalidParameterException Create a new client that passes userId and password in each HTTP request. This is the userId/password of the calling server. The end user's userId is sent on each request.- Parameters:
localServerName
- name of this server (view server)serverName
- name of the server to connect toserverPlatformURLRoot
- the network address of the server running the OMAS REST servicesuserId
- caller's userId embedded in all HTTP requestspassword
- caller's userId embedded in all HTTP requestsmaxPageSize
- maximum number of results supported by this serveraccessServiceURLMarker
- which access service to callserviceName
- local service nameauditLog
- logging destination- Throws:
InvalidParameterException
- there is a problem creating the client-side components to issue any REST API calls.
-
-
Method Details
-
createSubjectArea
public String createSubjectArea(String userId, String externalSourceGUID, String externalSourceName, String anchorGUID, boolean isOwnAnchor, String anchorScopeGUID, SubjectAreaProperties properties, String parentGUID, String parentRelationshipTypeName, ElementProperties parentRelationshipProperties, boolean parentAtEnd1, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException Create a new subject area.- Parameters:
userId
- userId of user making request.externalSourceGUID
- unique identifier of the software capability that owns this elementexternalSourceName
- unique name of the software capability that owns this elementanchorGUID
- unique identifier of the element that should be the anchor for the new element. Set to null if no anchor, or the Anchors classification is included in the initial classifications.isOwnAnchor
- boolean flag to day that the element should be classified as its own anchor once its element is created in the repository.anchorScopeGUID
- unique identifier of any anchor scope to use for searchingproperties
- properties for the new element.parentGUID
- unique identifier of optional parent entityparentRelationshipTypeName
- type of relationship to connect the new element to the parentparentRelationshipProperties
- properties to include in parent relationshipparentAtEnd1
- which end should the parent GUID go in the relationshipforLineage
- the retrieved elements are for lineage processing so include archived elementsforDuplicateProcessing
- the retrieved element is for duplicate processing so do not combine results from known duplicates.effectiveTime
- only return an element if it is effective at this time. Null means anytime. Use "new Date()" for now.- Returns:
- unique identifier of the newly created element
- Throws:
InvalidParameterException
- one of the parameters is invalid.PropertyServerException
- there is a problem retrieving information from the property server(s).UserNotAuthorizedException
- the requesting user is not authorized to issue this request.
-
createSubjectAreaFromTemplate
public String createSubjectAreaFromTemplate(String userId, String externalSourceGUID, String externalSourceName, String anchorGUID, boolean isOwnAnchor, String anchorScopeGUID, Date effectiveFrom, Date effectiveTo, String templateGUID, ElementProperties replacementProperties, Map<String, String> placeholderProperties, String parentGUID, String parentRelationshipTypeName, ElementProperties parentRelationshipProperties, boolean parentAtEnd1, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerExceptionCreate a new metadata element to represent a subject area using an existing element as a template. The template defines additional classifications and relationships that should be added to the new subject area.- Parameters:
userId
- calling userexternalSourceGUID
- unique identifier of the software capability that owns this elementexternalSourceName
- unique name of the software capability that owns this elementanchorGUID
- unique identifier of the element that should be the anchor for the new element. Set to null if no anchor, or the Anchors classification is included in the initial classifications.isOwnAnchor
- boolean flag to day that the element should be classified as its own anchor once its element is created in the repository.anchorScopeGUID
- unique identifier of any anchor scope to use for searchingeffectiveFrom
- the date when this element is active - null for active on creationeffectiveTo
- the date when this element becomes inactive - null for active until deletedtemplateGUID
- the unique identifier of the existing asset to copy (this will copy all the attachments such as nested content, schema connection etc)replacementProperties
- properties of the new metadata element. These override the template valuesplaceholderProperties
- property name-to-property value map to replace any placeholder values in the template element - and their anchored elements, which are also copied as part of this operation.parentGUID
- unique identifier of optional parent entityparentRelationshipTypeName
- type of relationship to connect the new element to the parentparentRelationshipProperties
- properties to include in parent relationshipparentAtEnd1
- which end should the parent GUID go in the relationshipforLineage
- the retrieved elements are for lineage processing so include archived elementsforDuplicateProcessing
- the retrieved element is for duplicate processing so do not combine results from known duplicates.effectiveTime
- only return an element if it is effective at this time. Null means anytime. Use "new Date()" for now.- Returns:
- unique identifier of the new metadata element
- Throws:
InvalidParameterException
- one of the parameters is invalidUserNotAuthorizedException
- the user is not authorized to issue this requestPropertyServerException
- there is a problem reported in the open metadata server(s)
-
updateSubjectArea
public void updateSubjectArea(String userId, String externalSourceGUID, String externalSourceName, String subjectAreaGUID, boolean replaceAllProperties, SubjectAreaProperties properties, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException Update the properties of a subject area.- Parameters:
userId
- userId of user making request.externalSourceGUID
- unique identifier of the software capability that owns this elementexternalSourceName
- unique name of the software capability that owns this elementsubjectAreaGUID
- unique identifier of the subject area (returned from create)replaceAllProperties
- flag to indicate whether to completely replace the existing properties with the new properties, or just update the individual properties specified on the request.properties
- properties for the element.forLineage
- 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)- Throws:
InvalidParameterException
- one of the parameters is invalid.PropertyServerException
- there is a problem retrieving information from the property server(s).UserNotAuthorizedException
- the requesting user is not authorized to issue this request.
-
linkSubjectAreas
public void linkSubjectAreas(String userId, String externalSourceGUID, String externalSourceName, String subjectAreaGUID, String nestedSubjectAreaGUID, RelationshipProperties relationshipProperties, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException Attach a profile to a subject area.- Parameters:
userId
- userId of user making requestexternalSourceGUID
- unique identifier of the software capability that owns this elementexternalSourceName
- unique name of the software capability that owns this elementsubjectAreaGUID
- unique identifier of the parentnestedSubjectAreaGUID
- unique identifier of the actor profilerelationshipProperties
- description of the relationship.forLineage
- 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)- Throws:
InvalidParameterException
- one of the parameters is null or invalid.PropertyServerException
- there is a problem retrieving information from the property server(s).UserNotAuthorizedException
- the requesting user is not authorized to issue this request.
-
detachSubjectAreas
public void detachSubjectAreas(String userId, String externalSourceGUID, String externalSourceName, String subjectAreaGUID, String nestedSubjectAreaGUID, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException Detach an actor profile from a subject area.- Parameters:
userId
- userId of user making request.externalSourceGUID
- unique identifier of the software capability that owns this elementexternalSourceName
- unique name of the software capability that owns this elementsubjectAreaGUID
- unique identifier of the parent actor profilenestedSubjectAreaGUID
- unique identifier of the nested actor profileforLineage
- 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)- Throws:
InvalidParameterException
- one of the parameters is null or invalid.PropertyServerException
- there is a problem retrieving information from the property server(s).UserNotAuthorizedException
- the requesting user is not authorized to issue this request.
-
deleteSubjectArea
public void deleteSubjectArea(String userId, String externalSourceGUID, String externalSourceName, String subjectAreaGUID, boolean cascadedDelete, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException Delete a subject area.- Parameters:
userId
- userId of user making request.externalSourceGUID
- unique identifier of the software capability that owns this elementexternalSourceName
- unique name of the software capability that owns this elementsubjectAreaGUID
- unique identifier of the elementcascadedDelete
- can the subject area be deleted if it has actor profiles linked to it?forLineage
- 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)- Throws:
InvalidParameterException
- one of the parameters is null or invalid.PropertyServerException
- there is a problem retrieving information from the property server(s).UserNotAuthorizedException
- the requesting user is not authorized to issue this request.
-
getSubjectAreasByName
public List<SubjectAreaElement> getSubjectAreasByName(String userId, String name, TemplateFilter templateFilter, List<ElementStatus> limitResultsByStatus, Date asOfTime, SequencingOrder sequencingOrder, String sequencingProperty, int startFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException Returns the list of subject areas with a particular name.- Parameters:
userId
- userId of user making requestname
- name of the element to return - match is full text match in qualifiedName or nametemplateFilter
- should templates be returned?limitResultsByStatus
- control the status of the elements to retrieve - default is everything but DeletedasOfTime
- repository time to usesequencingOrder
- order to retrieve resultssequencingProperty
- property to use for sequencing orderstartFrom
- paging start pointpageSize
- maximum results that can be returnedforLineage
- 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)- Returns:
- a list of elements
- Throws:
InvalidParameterException
- one of the parameters is null or invalid.PropertyServerException
- there is a problem retrieving information from the property server(s).UserNotAuthorizedException
- the requesting user is not authorized to issue this request.
-
getSubjectAreaByGUID
public SubjectAreaElement getSubjectAreaByGUID(String userId, String subjectAreaGUID, Date asOfTime, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException Return the properties of a specific subject area.- Parameters:
userId
- userId of user making requestsubjectAreaGUID
- unique identifier of the required elementasOfTime
- repository time to useforLineage
- 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)- Returns:
- retrieved properties
- Throws:
InvalidParameterException
- one of the parameters is null or invalid.PropertyServerException
- there is a problem retrieving information from the property server(s).UserNotAuthorizedException
- the requesting user is not authorized to issue this request.
-
findSubjectAreas
public List<SubjectAreaElement> findSubjectAreas(String userId, String searchString, TemplateFilter templateFilter, List<ElementStatus> limitResultsByStatus, Date asOfTime, SequencingOrder sequencingOrder, String sequencingProperty, int startFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException Retrieve the list of subject areas metadata elements that contain the search string. The search string is treated as a regular expression.- Parameters:
userId
- calling usersearchString
- string to find in the propertiestemplateFilter
- should templates be returned?limitResultsByStatus
- control the status of the elements to retrieve - default is everything but DeletedasOfTime
- repository time to usesequencingOrder
- order to retrieve resultssequencingProperty
- property to use for sequencing orderstartFrom
- paging start pointpageSize
- maximum results that can be returnedforLineage
- 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)- Returns:
- list of matching metadata elements
- Throws:
InvalidParameterException
- one of the parameters is invalidUserNotAuthorizedException
- the user is not authorized to issue this requestPropertyServerException
- there is a problem reported in the open metadata server(s)
-