@PublicApi public interface

ProjectComponentManager

com.atlassian.jira.bc.project.component.ProjectComponentManager
Known Indirect Subclasses

@PublicApi

This interface is designed for plugins to consume (call its methods).

Clients of @PublicApi can expect that programs compiled against a given version will remain binary compatible with later versions of the @PublicApi as per each product's API policy as long as the client does not implement/extend @PublicApi interfaces or classes (refer to each product's API policy for the exact guarantee---usually binary compatibility is guaranteed at least across minor versions).

Note: since @PublicApi interfaces and classes are not designed to be implemented or extended by clients, we may perform certain types of binary-incompatible changes to these classes and interfaces, but these will not affect well-behaved clients that do not extend/implement these types (in general, only classes and interfaces annotated with @PublicSpi are safe to extend/implement).

Class Overview

Methods for accessing and persisting project components.

Summary

Constants
String NO_COMPONENTS Used to represent empty component fields.
Public Methods
boolean containsName(String name, Long projectId)
Implement this method in order to check whether component with specified name is stored.
GenericValue convertToGenericValue(ProjectComponent projectComponent)
This method is deprecated. don't use GenericValue use the ProjectComponent instead.
Collection<GenericValue> convertToGenericValues(Collection<ProjectComponent> projectComponents)
This method is deprecated. don't use GenericValue use the ProjectComponent instead.
ProjectComponent create(String name, String description, String lead, long assigneeType, Long projectId)
Implement this method to create a new ProjectComponent object associated with the project with the ID specified and with the values given.
void delete(Long componentId)
Implement this method to delete the component.
ProjectComponent find(Long id)
Implement this method to find the component with the specified ID.
Collection<ProjectComponent> findAll()
Implement this method to find all components.
Collection<ProjectComponent> findAllForProject(Long projectId)
Implement this method to find all components associated with the project with the ID specified.
Collection<String> findAllUniqueNamesForProjectObjects(Collection<Project> projects)
Returns all unique names of the components that belong to the passed projects.
Collection<String> findAllUniqueNamesForProjects(Collection<Long> projectIds)
Returns all unique names of components associated with all the projects with the ID-s specified.
ProjectComponent findByComponentName(Long projectId, String componentName)
Finds the ProjectComponent with the given name in the project with the given id.
Collection<ProjectComponent> findByComponentNameCaseInSensitive(String componentName)
Finds all ProjectComponents with the given name with comparisons case insenstive.
Collection<ProjectComponent> findComponentsByIssue(Issue issue)
Collection<GenericValue> findComponentsByIssueGV(Issue issue)
This method is deprecated. use findComponentsByIssue that returns a Collection instead
Collection<ProjectComponent> findComponentsByLead(String userName)
Retrieve a collection of ProjectComponents - where the lead of each component is the specified user.
Long findProjectIdForComponent(Long componentId)
Implement this method to look up the project ID for the given component ID.
List<ProjectComponent> getComponents(List<Long> ids)
Creates a list of ProjectComponent objects from the given list of IDs.
@Nonnull Collection<Long> getIssueIdsWithComponent(ProjectComponent component)
Returns a list of all Issue IDs with the given component.
ProjectComponent update(MutableProjectComponent component)
Implement this method to update the component specified with the values given.

Constants

public static final String NO_COMPONENTS

Used to represent empty component fields.

Constant Value: "-1"

Public Methods

public boolean containsName (String name, Long projectId)

Implement this method in order to check whether component with specified name is stored.

Parameters
name component name, null will cause IllegalArgumentException
projectId project ID
Returns
  • true if new name is stored

public GenericValue convertToGenericValue (ProjectComponent projectComponent)

This method is deprecated.
don't use GenericValue use the ProjectComponent instead.

Converts the ProjectComponent to GenericValue form, provided as a transitional measure until GenericValue is eradicated from the front end.

Parameters
projectComponent project component
Returns
  • the ProjectComponent as a GenericValue.

public Collection<GenericValue> convertToGenericValues (Collection<ProjectComponent> projectComponents)

This method is deprecated.
don't use GenericValue use the ProjectComponent instead.

Temporary method to allow conversion of a collection of ProjectComponent objects to a collection of GenericValues representing a project component.

Parameters
projectComponents a collection of project components
Returns
  • Collection of GenericValues representing the collection of ProjectComponent objects passed in

public ProjectComponent create (String name, String description, String lead, long assigneeType, Long projectId)

Implement this method to create a new ProjectComponent object associated with the project with the ID specified and with the values given. It should also validate the values - store and return the ProjectComponent if validation succeeds. Otherwise, throw ValidationErrorsException.

Parameters
name name of component
description description of component
lead user name associated with component
assigneeType assignee type
projectId ID of project that component is associated with
Returns
  • new instance of ProjectComponent with the values specified
Throws
IllegalArgumentException if one or more arguments have invalid values

public void delete (Long componentId)

Implement this method to delete the component.

Parameters
componentId component id
Throws
EntityNotFoundException if the component is not found

public ProjectComponent find (Long id)

Implement this method to find the component with the specified ID.

Parameters
id component ID to search for
Returns
  • ProjectComponent with the specified ID
Throws
EntityNotFoundException if the component is not found

public Collection<ProjectComponent> findAll ()

Implement this method to find all components.

Returns
  • collection of all ProjectComponent objects

public Collection<ProjectComponent> findAllForProject (Long projectId)

Implement this method to find all components associated with the project with the ID specified.

Parameters
projectId ID of project to search for
Returns
  • collection of ProjectComponent objects associated with the project with the ID specified

public Collection<String> findAllUniqueNamesForProjectObjects (Collection<Project> projects)

Returns all unique names of the components that belong to the passed projects.

Parameters
projects projects to search in
Returns
  • collection of unique names of all components.

public Collection<String> findAllUniqueNamesForProjects (Collection<Long> projectIds)

Returns all unique names of components associated with all the projects with the ID-s specified.

Parameters
projectIds ID-s of project to search for
Returns
  • collection of unique names of components associated with all the projects with the ID-s specified.

public ProjectComponent findByComponentName (Long projectId, String componentName)

Finds the ProjectComponent with the given name in the project with the given id.

Parameters
projectId id of the project.
componentName name of the component.
Returns
  • the ProjectComponent or null if there is no such ProjectComponent.

public Collection<ProjectComponent> findByComponentNameCaseInSensitive (String componentName)

Finds all ProjectComponents with the given name with comparisons case insenstive.

Parameters
componentName name of the component.
Returns
  • all ProjectComponents with the given name or an empty collection if there is no such ProjectComponent.

public Collection<ProjectComponent> findComponentsByIssue (Issue issue)

Parameters
issue find components on this issue
Returns
  • collection of project components associated with this issue

public Collection<GenericValue> findComponentsByIssueGV (Issue issue)

This method is deprecated.
use findComponentsByIssue that returns a Collection instead

This code used to live directly in the IssueImpl but it has been refactored into the ProjectComponentManager to make things a little cleaner. That's why it is "new in 4.2" but immediately marked as deprecated

Parameters
issue find components for this issue
Returns
  • collection of generic values representing the components assigned to the issue

public Collection<ProjectComponent> findComponentsByLead (String userName)

Retrieve a collection of ProjectComponents - where the lead of each component is the specified user.

Parameters
userName the lead user name
Returns
  • collection of components - where the lead of each component is the specified user

public Long findProjectIdForComponent (Long componentId)

Implement this method to look up the project ID for the given component ID. If project is not found, throws EntityNotFoundException.

Parameters
componentId component ID
Returns
  • project ID
Throws
EntityNotFoundException if component with the specified id cannot be found

public List<ProjectComponent> getComponents (List<Long> ids)

Creates a list of ProjectComponent objects from the given list of IDs.

Parameters
ids The List of ProjectComponent IDs.
Returns
  • a list of ProjectComponent objects from the given list of IDs.
Throws
EntityNotFoundException if no ProjectComponent exists for any of the given IDs.

@Nonnull public Collection<Long> getIssueIdsWithComponent (ProjectComponent component)

Returns a list of all Issue IDs with the given component.

Parameters
component the component
Returns
  • a not null list of all Issue IDs with the given component.

public ProjectComponent update (MutableProjectComponent component)

Implement this method to update the component specified with the values given.

Parameters
component component to be updated
Returns
  • ProjectComponent with updated values as specified
Throws
EntityNotFoundException if component is not found