Interface ProjectManager


public interface ProjectManager
The ProjectManager provides the ability to retrieve projects, delete projects, and create projects.

ProjectManager instances are adapted from ResourceResolver.

Note that Projects can also be adapted from a Resource if that resource represents a Project.

Note that all changes are transient and need to be committed by the caller. For example:

     ResourceResolver resourceResolver = ...
     ProjectManager pm = resourceResolver.adaptTo(ProjectManager.class);
     Project project = pm.createProject("Test 1");
     project.setDescription("This is a test project");
     resourceResolver.commit();
 

See Also:
  • Method Details

    • getProjects

      Iterator<Project> getProjects(ProjectFilter filter, int startIndex, int limit)
      Retrieves an iterator over projects that are accessible by the current user.
      Parameters:
      filter - used to filter the list of returned projects
      startIndex - the index of the first project to retrieve
      limit - the maximum number of projects to retrieve
      Returns:
      an iterator over Projects.
      Throws:
      ProjectException - if the loading of the projects fails.
    • getChildren

      Iterator<Resource> getChildren(String folderPath, ProjectFilter filter, int startIndex, int limit)
      Retrieves an iterator over project and folder resources in the specified folder. The returned iterator also hides the legacy bucket structure of projects by returning any projects in a bucket under the current path as part its parent folder. E.g. iterating over /content/projects, where the structure is: /content/projects/bucket/project1 /content/projects/bucket/project2 /content/projects/project3 /content/projects/somefolder/project4 this will in the iteration return: - 'project1' and 'project2' (because the bucket structure is hidden by this iterator) - 'project3' (since it's part of the current parent of /content/projects) - 'somefolder' (since it's also part of the current parent) however it will not include 'project4' since it is under a regular folder 'somefolder'
      Parameters:
      folderPath - root path where to start iterating from
      filter - used to filter the list of returned projects
      startIndex - the index of the first project to retrieve. A negative value behaves the same as a value of 0.
      limit - the maximum number of projects to retrieve. A negative value means no limit.
      Returns:
      an iterator over Projects.
      Throws:
      ProjectException - if the loading of the projects fails.
    • deleteProject

      void deleteProject(Project project)
      Deletes the specified project.
      Parameters:
      project - the project to delete.
      Throws:
      ProjectException - if the project can not be deleted, for example due to access restrictions.
    • createProject

      Project createProject(String title, String templatePath)
      Creates a new project with the specified title.
      Parameters:
      title - the title of the new project
      templatePath - the path of the template to create the project with.
      Returns:
      a new project instance
      Throws:
      ProjectException - in case an error occurred.
    • createProject

      Project createProject(String nodeName, String title, String templatePath)
      Creates a new project with the specified title.
      Parameters:
      nodeName - the name of the node that will be created. If a node exists with the current name a unique name will be generated with the nodeName as the prefix.
      title - the title of the new project
      templatePath - the path of the template to create the project with.
      Returns:
      a new project instance
      Throws:
      ProjectException - in case an error occurred.
    • createProject

      Project createProject(String parentPath, String nodeName, String title, String templatePath)
      Creates a new project with the specified root folder, title and template.
      Parameters:
      parentPath - the parent path of where this project will be created.
      nodeName - the name of the node that will be created. If a node exists with the current name a unique name will be generated with the nodeName as the prefix.
      title - the title of the new project
      templatePath - the path of the template to create the project with.
      Returns:
      a new project instance
      Throws:
      ProjectException - in case an error occurred.
    • createProjectFromMasterProject

      Project createProjectFromMasterProject(String parentPath, String nodeName, String title, String templatePath, String description, Project masterProject, boolean useDefaultCoverImage)
      Creates a new project from Master Project with the specified root folder, title and template.
      Parameters:
      parentPath - the parent path of where this project will be created.
      nodeName - the name of the node that will be created. If a node exists with the current name a unique name will be generated with the nodeName as the prefix.
      title - the title of the new project
      templatePath - the path of the template to create the project with.
      description - the description of the new project
      masterProject - the Master Project which would be used to create the new project
      useDefaultCoverImage - whether to use default cover image or not
      Returns:
      a new project instance
    • getWorkflows

      List<WorkflowModel> getWorkflows(Project project)
      Return the list of workflows that are available for the project.
      Parameters:
      project - the project which to retrieve the available WorkflowModels for.
      Returns:
      the collection of available WorkflowModels.