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)
    • addSubProject

      public void addSubProject(String userId, String externalSourceGUID, String externalSourceName, String projectGUID, String projectGUIDParameterName, String subprojectGUID, String subprojectGUIDParameterName, Date effectiveFrom, Date effectiveTo, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Add a subproject. This creates a hierarchical relationship between the projects.
      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
      subprojectGUID - unique identifier of the subproject that is being added to the project
      subprojectGUIDParameterName - parameter supplying the subprojectGUID
      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)
    • removeSubProject

      public void removeSubProject(String userId, String externalSourceGUID, String externalSourceName, String projectGUID, String projectGUIDParameterName, String subprojectProfileGUID, String subprojectGUIDParameterName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Remove a subproject. This deletes a hierarchical relationship between the projects.
      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
      subprojectProfileGUID - unique identifier of the subproject that is being added to the project
      subprojectGUIDParameterName - parameter supplying the subprojectProfileGUID
      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)
    • addProjectDependency

      public void addProjectDependency(String userId, String externalSourceGUID, String externalSourceName, String projectGUID, String projectGUIDParameterName, String dependsOnProjectGUID, String dependsOnProjectGUIDParameterName, String dependencySummary, Date effectiveFrom, Date effectiveTo, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Add a project dependency. This adds a ProjectDependency relationship between the projects.
      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
      dependsOnProjectGUID - unique identifier of the project that is being added to the project as a dependency
      dependsOnProjectGUIDParameterName - parameter supplying the dependsOnProjectGUID
      dependencySummary - 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)
    • removeProjectDependency

      public void removeProjectDependency(String userId, String externalSourceGUID, String externalSourceName, String projectGUID, String projectGUIDParameterName, String dependsOnProjectGUID, String dependsOnProjectGUIDParameterName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Remove a project dependency. This removes a ProjectDependency relationship between the projects.
      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
      dependsOnProjectGUID - unique identifier of the project that is being added to the project as a dependency
      dependsOnProjectGUIDParameterName - parameter supplying the dependsOnProjectGUID
      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)
    • findProjects

      public List<B> findProjects(String userId, String searchString, String searchStringParameterName, int startFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the list of project metadata elements that contain the search string. The search string is treated as a regular expression.
      Parameters:
      userId - calling user
      searchString - string to find in the properties
      searchStringParameterName - name of parameter supplying the search string
      startFrom - paging start point
      pageSize - maximum results that can be returned
      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
      Returns:
      list of matching metadata elements
      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)
    • getProjectsByName

      public List<B> getProjectsByName(String userId, String name, String nameParameterName, int startFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the list of project metadata elements with a matching qualified or display name. There are no wildcards supported on this request.
      Parameters:
      userId - calling user
      name - name to search for
      nameParameterName - parameter supplying name
      startFrom - paging start point
      pageSize - maximum results that can be returned
      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
      Returns:
      list of matching metadata elements
      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)
    • getProjects

      public List<B> getProjects(String userId, int startFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the list of project metadata elements with a matching qualified or display name. There are no wildcards supported on this request.
      Parameters:
      userId - calling user
      startFrom - paging start point
      pageSize - maximum results that can be returned
      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
      Returns:
      list of matching metadata elements
      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)
    • getActorProjects

      public List<B> getActorProjects(String userId, String profileGUID, String profileGUIDParameterName, int startingFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the projects attached to a supplied actor profile via the project team relationship.
      Parameters:
      userId - calling user
      profileGUID - identifier for the entity that the projects are attached to
      profileGUIDParameterName - name of parameter supplying the GUID
      startingFrom - where to start from in the list
      pageSize - maximum number of results that can be returned
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • getRoleProjects

      public List<B> getRoleProjects(String userId, String personRoleGUID, String personRoleGUIDParameterName, int startingFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the projects attached to a supplied person role via the project management relationship.
      Parameters:
      userId - calling user
      personRoleGUID - identifier for the entity that the projects are attached to
      personRoleGUIDParameterName - name of parameter supplying the GUID
      startingFrom - where to start from in the list
      pageSize - maximum number of results that can be returned
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • getDependentProjects

      public List<B> getDependentProjects(String userId, String projectGUID, String projectGUIDParameterName, int startingFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the projects that are dependent on this project.
      Parameters:
      userId - calling user
      projectGUID - identifier for the entity that the contact details are attached to
      projectGUIDParameterName - name of parameter supplying the GUID
      startingFrom - where to start from in the list
      pageSize - maximum number of results that can be returned
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • getDependsOnProjects

      public List<B> getDependsOnProjects(String userId, String projectGUID, String projectGUIDParameterName, int startingFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the projects that this project depends on.
      Parameters:
      userId - calling user
      projectGUID - identifier for the entity that the contact details are attached to
      projectGUIDParameterName - name of parameter supplying the GUID
      startingFrom - where to start from in the list
      pageSize - maximum number of results that can be returned
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • getSuperProjects

      public List<B> getSuperProjects(String userId, String projectGUID, String projectGUIDParameterName, int startingFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the projects that manage this project via the ProjectHierarchy relationship.
      Parameters:
      userId - calling user
      projectGUID - identifier for the entity that the contact details are attached to
      projectGUIDParameterName - name of parameter supplying the GUID
      startingFrom - where to start from in the list
      pageSize - maximum number of results that can be returned
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • getSubProjects

      public List<B> getSubProjects(String userId, String projectGUID, String projectGUIDParameterName, int startingFrom, int pageSize, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException
      Return the projects that this project is managing via the ProjectHierarchy relationship.
      Parameters:
      userId - calling user
      projectGUID - identifier for the entity that the contact details are attached to
      projectGUIDParameterName - name of parameter supplying the GUID
      startingFrom - where to start from in the list
      pageSize - maximum number of results that can be returned
      forLineage - the request is to support lineage retrieval this means entities with the Memento classification can be returned
      forDuplicateProcessing - the request is for duplicate processing and so must not deduplicate
      effectiveTime - the time that the retrieved elements must be effective for (null for any time, new Date() for now)
      methodName - calling method
      Returns:
      list of objects or null if none found
      Throws:
      InvalidParameterException - the input properties are invalid
      UserNotAuthorizedException - user not authorized to issue this request
      PropertyServerException - problem accessing the property server
    • getProjectByGUID

      public B getProjectByGUID(String userId, String guid, String guidParameterName, boolean forLineage, boolean forDuplicateProcessing, Date effectiveTime, String methodName) throws InvalidParameterException, UserNotAuthorizedException, PropertyServerException
      Retrieve the project metadata element with the supplied unique identifier.
      Parameters:
      userId - calling user
      guid - unique identifier of the requested metadata element
      guidParameterName - parameter name of guid
      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
      Returns:
      matching metadata element
      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)