Class IssueDataServiceImpl

java.lang.Object
com.atlassian.greenhopper.service.issue.IssueDataServiceImpl
All Implemented Interfaces:
IssueDataService

public class IssueDataServiceImpl extends Object implements IssueDataService
Abstraction for a common usage pattern of querying a handful of issue fields from Lucene. Besides being convenient, this serves the purpose of keeping Lucene dependencies out of the code as much as possible.
Author:
ahennecke
  • Field Details

  • Constructor Details

    • IssueDataServiceImpl

      public IssueDataServiceImpl(com.atlassian.jira.search.issue.IssueDocumentSearchService issueDocumentSearchService, com.atlassian.jira.web.action.issue.IssueSearchLimits issueSearchLimits, com.atlassian.jira.search.issue.IssueQueryFactory issueQueryFactory)
  • Method Details

    • count

      @Nonnull public ServiceOutcome<Long> count(com.atlassian.jira.user.ApplicationUser user, com.atlassian.query.Query query)
      Description copied from interface: IssueDataService
      Counts entities matching query.
      Specified by:
      count in interface IssueDataService
      Parameters:
      user - user
      query - query
      Returns:
      count entities matching query
    • findIssueIds

      @Nonnull public ServiceOutcome<Set<Long>> findIssueIds(com.atlassian.jira.user.ApplicationUser user, com.atlassian.query.Query query)
      Description copied from interface: IssueDataService
      Finds issue ids matching query.
      Specified by:
      findIssueIds in interface IssueDataService
      Parameters:
      user - user whose permissions are used to filter the issues
      query - query to find issues
      Returns:
      issue ids
    • splitIssueIdsBySubQueries

      @Nonnull public <K> ServiceOutcome<Map<K,Set<Long>>> splitIssueIdsBySubQueries(com.atlassian.jira.user.ApplicationUser user, Set<Long> issues, Map<K,com.atlassian.query.Query> subqueries)
      Description copied from interface: IssueDataService
      Splits provided issue ids by subqueries, each subset is associated with a key from the subqueries map. The number of issues returned will be limited by the max result window specified for the used search platform. There's no permission check made in this method, as all issues passed should already be validated. For empty queries (no where clause), all provided issues will be assigned to that query's key, which handles the JIRA_EMPTY_JQL_RETURNS_NO_DATA_ENABLED configuration properly.
      Specified by:
      splitIssueIdsBySubQueries in interface IssueDataService
      Parameters:
      user - user used for query purposes (e.g. resolving currentUser())
      issues - that will be split between swimlanes
      subqueries - map of queries to split the issues by
      Returns:
      issue ids split by keys associated with subqueries
    • getIssueCountPerStatus

      @Nonnull public ServiceOutcome<Map<String,Long>> getIssueCountPerStatus(com.atlassian.jira.user.ApplicationUser user, com.atlassian.query.Query query)
      Description copied from interface: IssueDataService
      Find the count of issues in a given status.
      Specified by:
      getIssueCountPerStatus in interface IssueDataService
      Parameters:
      user - user performing the operation
      query - query to find issues
      Returns:
      a map where the key is the status ID and the value is the count of issues in a given status