com.atlassian.jira.bc.project.component
Interface ProjectComponentManager

All Known Implementing Classes:
DefaultProjectComponentManager, MockProjectComponentManager

@PublicApi
public interface ProjectComponentManager

Methods for accessing and persisting project components.


Field Summary
static String NO_COMPONENTS
          Used to represent empty component fields.
 
Method Summary
 boolean containsName(String name, Long projectId)
          Implement this method in order to check whether component with specified name is stored.
 org.ofbiz.core.entity.GenericValue convertToGenericValue(ProjectComponent projectComponent)
          Deprecated. don't use GenericValue use the ProjectComponent instead.
 Collection<org.ofbiz.core.entity.GenericValue> convertToGenericValues(Collection<ProjectComponent> projectComponents)
          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<org.ofbiz.core.entity.GenericValue> findComponentsByIssueGV(Issue issue)
          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.
 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.
 

Field Detail

NO_COMPONENTS

static final String NO_COMPONENTS
Used to represent empty component fields.

See Also:
Constant Field Values
Method Detail

create

ProjectComponent create(String name,
                        String description,
                        String lead,
                        long assigneeType,
                        Long projectId)
                        throws IllegalArgumentException
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

find

ProjectComponent find(Long id)
                      throws EntityNotFoundException
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

findAllForProject

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

findAllUniqueNamesForProjects

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.

findAll

Collection<ProjectComponent> findAll()
Implement this method to find all components.

Returns:
collection of all ProjectComponent objects

findAllUniqueNamesForProjectObjects

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.

getComponents

List<ProjectComponent> getComponents(List<Long> ids)
                                     throws EntityNotFoundException
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.

update

ProjectComponent update(MutableProjectComponent component)
                        throws EntityNotFoundException
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

delete

void delete(Long componentId)
            throws EntityNotFoundException
Implement this method to delete the component.

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

containsName

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

findProjectIdForComponent

Long findProjectIdForComponent(Long componentId)
                               throws EntityNotFoundException
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

convertToGenericValue

org.ofbiz.core.entity.GenericValue convertToGenericValue(ProjectComponent projectComponent)
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.

convertToGenericValues

Collection<org.ofbiz.core.entity.GenericValue> convertToGenericValues(Collection<ProjectComponent> projectComponents)
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

findByComponentName

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.

findByComponentNameCaseInSensitive

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.

findComponentsByLead

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

findComponentsByIssue

Collection<ProjectComponent> findComponentsByIssue(Issue issue)
Parameters:
issue - find components on this issue
Returns:
collection of project components associated with this issue
Since:
4.2

getIssueIdsWithComponent

@Nonnull
Collection<Long> getIssueIdsWithComponent(@Nonnull
                                                  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.

findComponentsByIssueGV

Collection<org.ofbiz.core.entity.GenericValue> findComponentsByIssueGV(Issue issue)
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
Since:
4.2


Copyright © 2002-2014 Atlassian. All Rights Reserved.