Class ProjectHandler<B>

Type Parameters:
B - class that represents the project

public class ProjectHandler<B> extends ReferenceableHandler<B>
ProjectHandler provides the exchange of metadata about projects between the repository and the OMAS.
  • Constructor Details

    • ProjectHandler

      public ProjectHandler(OpenMetadataAPIGenericConverter<B> converter, Class<B> beanClass, String serviceName, String serverName, InvalidParameterHandler invalidParameterHandler, RepositoryHandler repositoryHandler, OMRSRepositoryHelper repositoryHelper, String localServerUserId, OpenMetadataServerSecurityVerifier securityVerifier, List<String> supportedZones, List<String> defaultZones, List<String> publishZones, AuditLog auditLog)
      Construct the handler with information needed to work with B objects.
      Parameters:
      converter - specific converter for this bean class
      beanClass - name of bean class that is represented by the generic class B
      serviceName - name of this service
      serverName - name of the local server
      invalidParameterHandler - handler for managing parameter errors
      repositoryHandler - manages calls to the repository services
      repositoryHelper - provides utilities for manipulating the repository services objects
      localServerUserId - userId for this server
      securityVerifier - open metadata security services verifier
      supportedZones - list of zones that the access service is allowed to serve B instances from
      defaultZones - list of zones that the access service should set in all new B instances
      publishZones - list of zones that the access service sets up in published B instances
      auditLog - destination for audit log events
  • Method Details

    • createProject

      public String createProject(String userId, String externalSourceGUID, String externalSourceName, String qualifiedName, String identifier, String name, String description, Date startDate, Date plannedEndDate, String projectPhase, String projectHealth, String projectStatus, int priority, Map<String,String> additionalProperties, String suppliedTypeName, Map<String,Object> extendedProperties, boolean setCampaignClassification, boolean setTaskClassification, String projectTypeClassification, Date effectiveFrom, Date effectiveTo, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Create the project object.
      Parameters:
      userId - calling user
      externalSourceGUID - unique identifier of the software capability that owns this project
      externalSourceName - unique name of the software capability that owns this project
      qualifiedName - qualified name of project
      identifier - unique identifier of project - typically allocated externally
      name - display name
      description - description
      startDate - date the project started
      plannedEndDate - date the project is expected to end
      projectPhase - lifecycle phase of project
      projectHealth - how well is the project tracking to plan
      projectStatus - status of the project
      priority - priority of project
      additionalProperties - additional properties for a project
      suppliedTypeName - type name from the caller (enables creation of subtypes)
      extendedProperties - properties for a governance project subtype
      setCampaignClassification - should the Campaign classification be set?
      setTaskClassification - should the Task classification be set?
      projectTypeClassification - add special classification that defines the type of project - eg GlossaryProject or GovernanceProject
      effectiveFrom - the time that the relationship element must be effective from (null for any time, new Date() for now)
      effectiveTo - the time that the relationship must be effective to (null for any time, new Date() for now)
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      unique identifier of the new project object
      Throws:
      InvalidParameterException - qualifiedName or userId is null
      PropertyServerException - problem accessing property server
      UserNotAuthorizedException - security access problem
    • updateProject

      public void updateProject(String userId, String externalSourceGUID, String externalSourceName, String projectGUID, String projectGUIDParameterName, String qualifiedName, String identifier, String name, String description, Date startDate, Date plannedEndDate, String projectPhase, String projectHealth, String projectStatus, int priority, Map<String,String> additionalProperties, String suppliedTypeName, Map<String,Object> extendedProperties, Date effectiveFrom, Date effectiveTo, boolean isMergeUpdate, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Update the anchor object that all elements in a project (terms and categories) are linked to.
      Parameters:
      userId - calling user
      externalSourceGUID - unique identifier of the software capability that owns this project
      externalSourceName - unique name of the software capability that owns this project
      projectGUID - unique identifier of the project to update
      projectGUIDParameterName - parameter passing the projectGUID
      qualifiedName - qualified name of project
      identifier - unique identifier of project - typically allocated externally
      name - display name
      description - description
      startDate - date the project started
      plannedEndDate - date the project is expected to end
      projectPhase - lifecycle phase of project
      projectHealth - how well is the project tracking to plan
      projectStatus - status of the project
      priority - priority of project
      additionalProperties - additional properties for a governance project
      suppliedTypeName - type of project
      extendedProperties - properties for a governance project subtype
      effectiveFrom - the time that the relationship element must be effective from (null for any time, new Date() for now)
      effectiveTo - the time that the relationship must be effective to (null for any time, new Date() for now)
      isMergeUpdate - should the properties be merged with the existing properties or completely over-write them
      forLineage - 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 - calling method
      Throws:
      InvalidParameterException - qualifiedName or userId is null
      PropertyServerException - problem accessing property server
      UserNotAuthorizedException - security access problem
    • addActorToProject

      public void addActorToProject(String userId, String externalSourceGUID, String externalSourceName, String projectGUID, String projectGUIDParameterName, String actorProfileGUID, String actorProfileGUIDParameterName, String teamRole, Date effectiveFrom, Date effectiveTo, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Add a project team (ActorProfile) to a project.
      Parameters:
      userId - calling user
      externalSourceGUID - unique identifier of the software capability that owns this project
      externalSourceName - unique name of the software capability that owns this project
      projectGUID - unique identifier of the project
      projectGUIDParameterName - parameter supplying the projectGUID
      actorProfileGUID - unique identifier of the element that is being added to the project
      actorProfileGUIDParameterName - parameter supplying the actorProfileGUID
      teamRole - why is the team attached to the project? (optional)
      effectiveFrom - the time that the relationship element must be effective from (null for any time, new Date() for now)
      effectiveTo - the time that the relationship must be effective to (null for any time, new Date() for now)
      forLineage - 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 - calling method
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - the user is not authorized to issue this request
      PropertyServerException - there is a problem reported in the open metadata server(s)
    • removeActorFromProject

      public void removeActorFromProject(String userId, String externalSourceGUID, String externalSourceName, String projectGUID, String projectGUIDParameterName, String actorProfileGUID, String actorProfileGUIDParameterName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Remove a project team (ActorProfile) from a project.
      Parameters:
      userId - calling user
      externalSourceGUID - unique identifier of the software capability that owns this project
      externalSourceName - unique name of the software capability that owns this project
      projectGUID - unique identifier of the project
      projectGUIDParameterName - parameter supplying the projectGUID
      actorProfileGUID - unique identifier of the element that is being added to the project
      actorProfileGUIDParameterName - parameter supplying the actorProfileGUID
      forLineage - 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 - calling method
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - the user is not authorized to issue this request
      PropertyServerException - there is a problem reported in the open metadata server(s)
    • addProjectManager

      public void addProjectManager(String userId, String externalSourceGUID, String externalSourceName, String projectGUID, String projectGUIDParameterName, String personRoleGUID, String personRoleGUIDParameterName, Date effectiveFrom, Date effectiveTo, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Add a project manager (PersonRole) to a project.
      Parameters:
      userId - calling user
      externalSourceGUID - unique identifier of the software capability that owns this project
      externalSourceName - unique name of the software capability that owns this project
      projectGUID - unique identifier of the project
      projectGUIDParameterName - parameter supplying the projectGUID
      personRoleGUID - unique identifier of the element that is being added to the project
      personRoleGUIDParameterName - parameter supplying the personRoleGUID
      effectiveFrom - the time that the relationship element must be effective from (null for any time, new Date() for now)
      effectiveTo - the time that the relationship must be effective to (null for any time, new Date() for now)
      forLineage - 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 - calling method
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - the user is not authorized to issue this request
      PropertyServerException - there is a problem reported in the open metadata server(s)
    • removeProjectManager

      public void removeProjectManager(String userId, String externalSourceGUID, String externalSourceName, String projectGUID, String projectGUIDParameterName, String personRoleGUID, String personRoleGUIDParameterName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Remove a project manager (PersonRole) from a project.
      Parameters:
      userId - calling user
      externalSourceGUID - unique identifier of the software capability that owns this project
      externalSourceName - unique name of the software capability that owns this project
      projectGUID - unique identifier of the project
      projectGUIDParameterName - parameter supplying the projectGUID
      personRoleGUID - unique identifier of the element that is being added to the project
      personRoleGUIDParameterName - parameter supplying the personRoleGUID
      forLineage - 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 - calling method
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - the user is not authorized to issue this request
      PropertyServerException - there is a problem reported in the open metadata server(s)
    • removeProject

      public void removeProject(String userId, String externalSourceGUID, String externalSourceName, String projectGUID, String projectGUIDParameterName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Remove the metadata element representing a project. This will delete the project and all categories and terms because the Anchors classifications are set up in these elements.
      Parameters:
      userId - calling user
      externalSourceGUID - unique identifier of the software capability that owns this project
      externalSourceName - unique name of the software capability that owns this project
      projectGUID - unique identifier of the metadata element to remove
      projectGUIDParameterName - parameter supplying the projectGUID
      forLineage - 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 - calling method
      Throws:
      InvalidParameterException - one of the parameters is invalid
      UserNotAuthorizedException - the user is not authorized to issue this request
      PropertyServerException - there is a problem reported in the open metadata server(s)