Package com.atlassian.jira.project
Class DefaultProjectManager
java.lang.Object
com.atlassian.jira.project.AbstractProjectManager
com.atlassian.jira.project.DefaultProjectManager
- All Implemented Interfaces:
ProjectManager
A class to manage interactions with projects
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionDefaultProjectManager
(OfBizDelegator delegator, DbConnectionManager dbConnectionManager, NodeAssociationStore nodeAssociationStore, ProjectFactory projectFactory, ProjectRoleManager projectRoleManager, IssueManager issueManager, UserManager userManager, ProjectCategoryStore projectCategoryStore, ApplicationProperties applicationProperties, ProjectKeyStore projectKeyStore, TransactionSupport transactionSupport, PropertiesManager propertiesManager, JsonEntityPropertyManager jsonEntityPropertyManager, com.atlassian.event.api.EventPublisher eventPublisher, ProjectTypeValidator projectTypeValidator, AvatarManager avatarManager, ProjectLeadHandler projectLeadHandler, DefaultAssigneeTypeHandler defaultAssigneeTypeHandler) -
Method Summary
Modifier and TypeMethodDescriptioncreateProject
(ApplicationUser user, ProjectCreationData projectCreationData) Creates the project in the database, and adds default project roles for this project.createProjectCategory
(String name, String description) Creates a new ProjectCategory with the given name and description.Returns all ProjectCategories, ordered by name.getAllProjectKeys
(Long projectId) Returns all project keys that are associated withProject
.Return archivedProject
s ordered by name.long
Returns the curremt issue counter for the given project.protected OfBizDelegator
long
Get the next issue ID from this project (transactional).protected org.ofbiz.core.entity.GenericValue
getProject
(Long id) getProjectByCurrentKey
(String projectKey) Returns theProject
with the given project key.getProjectByCurrentKeyIgnoreCase
(String projectKey) Returns aProject
object based on the passed in project key, not taking into account the case of the project key.protected org.ofbiz.core.entity.GenericValue
getProjectByKey
(String key) protected org.ofbiz.core.entity.GenericValue
getProjectByName
(String name) Returns a single project category by id.getProjectCategoryForProject
(Project project) Returns a project's category.Returns a single project category by id.long
Return the total number ofProject
s.getProjectObj
(Long id) Retrieves a singleProject
by its id.getProjectObjByKey
(String projectKey) Returns aProject
object based on the passed in project key.getProjectObjByKeyIgnoreCase
(String projectKey) Returns aProject
object based on the passed in project key, not taking into account the case of the project key.getProjectObjByName
(String projectName) Returns aProject
object based on the passed in project name.Return all openProject
s ordered by name.getProjectObjectsFromProjectCategory
(Long projectCategoryId) Returns a list of projects in a particular category.Returns a list of projects without project category, sorted by project nameReturn all activeProject
s ordered by name.getProjectsFromProjectCategory
(ProjectCategory projectCategory) Returns a list of projects in a particular category.getProjectsLeadBy
(ApplicationUser leadUser) Returns all the projects that leadUser is the project lead for ordered by the name of the Project.boolean
Checks if a project category with a given name exists.void
refresh()
Causes a full refresh of the project cache.void
removeProject
(Project project) Deletes the provided project from the database.void
Removes the given ProjectCategory.void
removeProjectIssues
(Project project) Removes all issues for a particular project.void
removeProjectIssues
(Project project, Context taskContext) Removes all issues for a particular project.void
setCurrentCounterForProject
(Project project, long counter) Set the project counter.void
setProjectCategory
(Project project, ProjectCategory projectCategory) Sets a project's category.void
shutdown
(ComponentManagerShutdownEvent shutdownEvent) updateProject
(Project updatedProject, String name, String description, String leadKey, String url, Long assigneeType, Long avatarId, String projectKey) Updates the project provided with the new attributes passed in.updateProject
(UpdateProjectParameters parameters) Updates the project with the given changes.void
updateProjectCategory
(ProjectCategory projectCategory) Persist an updated project category.updateProjectType
(ApplicationUser user, Project project, ProjectTypeKey newProjectType) Updates the type of a project.Methods inherited from class com.atlassian.jira.project.AbstractProjectManager
convertToOptionalProjectObjects, convertToProjectObjects, getDefaultAssignee, getDefaultAssignee, getProjectCategoryObjectByName, getProjectCategoryObjectByNameIgnoreCase, getProjectsByArgs, updateProject, updateProject
-
Field Details
-
APPLINKS_LOCAL_PROPERTY_PREFIX
- See Also:
-
-
Constructor Details
-
DefaultProjectManager
public DefaultProjectManager(OfBizDelegator delegator, DbConnectionManager dbConnectionManager, NodeAssociationStore nodeAssociationStore, ProjectFactory projectFactory, ProjectRoleManager projectRoleManager, IssueManager issueManager, UserManager userManager, ProjectCategoryStore projectCategoryStore, ApplicationProperties applicationProperties, ProjectKeyStore projectKeyStore, TransactionSupport transactionSupport, PropertiesManager propertiesManager, JsonEntityPropertyManager jsonEntityPropertyManager, com.atlassian.event.api.EventPublisher eventPublisher, ProjectTypeValidator projectTypeValidator, AvatarManager avatarManager, ProjectLeadHandler projectLeadHandler, DefaultAssigneeTypeHandler defaultAssigneeTypeHandler)
-
-
Method Details
-
createProject
public Project createProject(@Nonnull ApplicationUser user, @Nonnull ProjectCreationData projectCreationData) Description copied from interface:ProjectManager
Creates the project in the database, and adds default project roles for this project.If no name, key, lead or project type are provided an exception will be thrown.
- Parameters:
user
- The user creating the projectprojectCreationData
- An object encapsulating all the data for the project that will get created- Returns:
- The newly created project.
- See Also:
-
getNextId
Description copied from interface:ProjectManager
Get the next issue ID from this project (transactional). Each project maintains an internal counter for the number of issues. This method may be used to construct a new issue key.- Parameters:
project
- The Project- Returns:
- A long value representing a new issue id for the project.
-
updateProject
public Project updateProject(Project updatedProject, String name, String description, String leadKey, String url, Long assigneeType, Long avatarId, String projectKey) Description copied from interface:ProjectManager
Updates the project provided with the new attributes passed in. This method is responsible for persisting any changes to the database.- Parameters:
updatedProject
- The project to be updated.name
- The name for the updated projectdescription
- An optional description for the projectleadKey
- The userkey of the lead developer for the projecturl
- An optional URL for the updated projectassigneeType
- The default assignee for issues created in this project. May be either project lead, or unassigned if unassigned issues are enabled.projectKey
- The new project key (not updated if null)- Returns:
- The updated project
-
updateProject
Description copied from interface:ProjectManager
Updates the project with the given changes.- Parameters:
parameters
- containing the changes to the project that needs to be made.- Returns:
- The updated project
-
updateProjectType
public Project updateProjectType(ApplicationUser user, Project project, ProjectTypeKey newProjectType) Description copied from interface:ProjectManager
Updates the type of a project.- Parameters:
user
- The user performing the actionproject
- The project which type needs to be updatednewProjectType
- The new project type- Returns:
- The updated project
-
removeProjectIssues
Description copied from interface:ProjectManager
Removes all issues for a particular project. A RemoveException will be thrown on any errors removing issues.- Parameters:
project
- The project for which issues will be deleted.- Throws:
RemoveException
- if there's any errors removing issues
-
removeProjectIssues
Description copied from interface:ProjectManager
Removes all issues for a particular project. A RemoveException will be thrown on any errors removing issues.- Parameters:
project
- The project for which issues will be deleted.taskContext
- A task context for providing progress.- Throws:
RemoveException
- if there's any errors removing issues
-
removeProject
Description copied from interface:ProjectManager
Deletes the provided project from the database. Please note that this method only deletes the project itself and not any related entities. UseProjectService.deleteProject(com.atlassian.jira.user.ApplicationUser, com.atlassian.jira.bc.project.ProjectService.DeleteProjectValidationResult)
to properly delete a project.- Parameters:
project
- The project to be deleted.
-
getProject
-
getProjectObj
Description copied from interface:ProjectManager
Retrieves a singleProject
by its id.- Parameters:
id
- ID of the Project.- Returns:
- Project object or null if project with that id doesn't exist.
-
getProjectByName
-
getProjectByKey
-
getProjectByCurrentKey
Description copied from interface:ProjectManager
Returns theProject
with the given project key.This method will strictly only return the project whose current project key is the one given.
This method is added to the API in anticipation of being able to edit the project key, but this feature has not actually been added in 6.0.
- Specified by:
getProjectByCurrentKey
in interfaceProjectManager
- Overrides:
getProjectByCurrentKey
in classAbstractProjectManager
- Parameters:
projectKey
- the Project key.- Returns:
- the
Project
with the given project key. - See Also:
-
getProjectObjByKey
Description copied from interface:ProjectManager
Returns aProject
object based on the passed in project key.- Parameters:
projectKey
- the Project key.- Returns:
- the
Project
object specified by the key or null
-
getProjectByCurrentKeyIgnoreCase
Description copied from interface:ProjectManager
Returns aProject
object based on the passed in project key, not taking into account the case of the project key.- Parameters:
projectKey
- the project key, case does not matter.- Returns:
- the project object specified by the key or null if no such project exists.
-
getProjectObjByKeyIgnoreCase
Description copied from interface:ProjectManager
Returns aProject
object based on the passed in project key, not taking into account the case of the project key. Matches also by previous keys that were associated with a project.- Parameters:
projectKey
- the project key, case does not matter.- Returns:
- the project object specified by the key or null if no such project exists.
-
getAllProjectKeys
Description copied from interface:ProjectManager
Returns all project keys that are associated withProject
.- Returns:
- all project keys (including the current one) associated with the project
-
getProjectObjByName
Description copied from interface:ProjectManager
Returns aProject
object based on the passed in project name.- Parameters:
projectName
- the name of the project- Returns:
- the
Project
object specified by the supplied name or null
-
getProjects
Description copied from interface:ProjectManager
Return all activeProject
s ordered by name. A project is considered active if it is not archived.- Returns:
- all active projects ordered by name.
-
getArchivedProjects
Description copied from interface:ProjectManager
Return archivedProject
s ordered by name.- Returns:
- all projects ordered by name.
-
getProjectObjects
Description copied from interface:ProjectManager
Return all openProject
s ordered by name.This method does the same thing as getProjects() and exists for legacy reasons.
- Returns:
- all projects ordered by name.
- See Also:
-
getProjectCount
Description copied from interface:ProjectManager
Return the total number ofProject
s.- Returns:
- A long value representing tht total number of projects.
- Throws:
DataAccessException
- if any errors occur accessing the DB.
-
getDelegator
-
getAllProjectCategories
Description copied from interface:ProjectManager
Returns all ProjectCategories, ordered by name.- Returns:
- all ProjectCategories, ordered by name.
-
getProjectCategory
Description copied from interface:ProjectManager
Returns a single project category by id.- Parameters:
id
-ProjectCategory
id.- Returns:
- the
ProjectCategory
for the provided id if it was found or else null
-
getProjectCategoryObject
Description copied from interface:ProjectManager
Returns a single project category by id.Legacy synonym for
ProjectManager.getProjectCategory(Long)
- Parameters:
id
- Project Category ID.- Returns:
- The project category
-
updateProjectCategory
public void updateProjectCategory(@Nonnull ProjectCategory projectCategory) throws DataAccessException Description copied from interface:ProjectManager
Persist an updated project category.- Parameters:
projectCategory
- project category.- Throws:
DataAccessException
- If any errors occur accessing the DB.
-
getProjectsFromProjectCategory
public Collection<Project> getProjectsFromProjectCategory(ProjectCategory projectCategory) throws DataAccessException Description copied from interface:ProjectManager
Returns a list of projects in a particular category.- Parameters:
projectCategory
- project category.- Returns:
- A collection of projects sorted by name.
- Throws:
DataAccessException
- If any errors occur accessing the DB.
-
getProjectObjectsFromProjectCategory
Description copied from interface:ProjectManager
Returns a list of projects in a particular category.- Parameters:
projectCategoryId
- project category id.- Returns:
- A collection of project
Project
s sorted by name.
-
getProjectObjectsWithNoCategory
Description copied from interface:ProjectManager
Returns a list of projects without project category, sorted by project name- Returns:
- A collection of
Project
s sorted by name - Throws:
DataAccessException
- If any errors occur accessing the DB.
-
getProjectCategoryForProject
@Nullable public ProjectCategory getProjectCategoryForProject(Project project) throws DataAccessException Description copied from interface:ProjectManager
Returns a project's category.- Parameters:
project
- project- Returns:
- A ProjectCategory or null if this project has no category.
- Throws:
DataAccessException
- If any errors occur accessing the DB.
-
createProjectCategory
Description copied from interface:ProjectManager
Creates a new ProjectCategory with the given name and description.- Parameters:
name
- the Namedescription
- the Description.- Returns:
- the new ProjectCategory.
-
removeProjectCategory
Description copied from interface:ProjectManager
Removes the given ProjectCategory.- Parameters:
id
- the ProjectCategory to remove.
-
isProjectCategoryUnique
Description copied from interface:ProjectManager
Checks if a project category with a given name exists.- Parameters:
name
- the name of the project category- Returns:
- if a category with given name exists
-
setProjectCategory
Description copied from interface:ProjectManager
Sets a project's category.- Parameters:
project
- projectprojectCategory
- category
-
getProjectsLeadBy
Description copied from interface:ProjectManager
Returns all the projects that leadUser is the project lead for ordered by the name of the Project.- Parameters:
leadUser
- Project Lead- Returns:
- A collection of projects
-
refresh
public void refresh()Description copied from interface:ProjectManager
Causes a full refresh of the project cache. -
getCurrentCounterForProject
Description copied from interface:ProjectManager
Returns the curremt issue counter for the given project. This value is for information only; you should not use it to predict or create issue ids, because it may change concurrently as new issues are created.- Parameters:
id
- the ID of the project for which to retrieve the counter- Returns:
- the current project counter (the id of the next issue to be created).
-
setCurrentCounterForProject
Description copied from interface:ProjectManager
Set the project counter. Warning Setting the project counter is not needed in the normal operations of JIRA, this method exist for functionality like project-import etc.- Parameters:
project
- the project for which to set the counter (required)counter
- the counter value to set
-
shutdown
-