com.atlassian.greenhopper.service.charts
Class IssueStatusHistoryServiceImpl

java.lang.Object
  extended by com.atlassian.greenhopper.global.AbstractLoggable
      extended by com.atlassian.greenhopper.service.charts.IssueStatusHistoryServiceImpl
All Implemented Interfaces:
IssueStatusHistoryService

@Service
public class IssueStatusHistoryServiceImpl
extends AbstractLoggable
implements IssueStatusHistoryService

Produces status history from the Lucene change history index. The low-level Lucene part of this is a candidate to be pushed to JIRA.

Author:
ahennecke

Field Summary
 
Fields inherited from class com.atlassian.greenhopper.global.AbstractLoggable
logger
 
Constructor Summary
IssueStatusHistoryServiceImpl()
           
 
Method Summary
 ErrorCollection collectStatusHistory(com.atlassian.crowd.embedded.api.User user, com.atlassian.query.Query query, IssueStatusHistoryCallback callback)
          Read the status history from the Lucene history index.
 java.util.List<IssueStatusHistory> getIssueStatusHistories(com.atlassian.crowd.embedded.api.User user, java.util.Collection<com.atlassian.jira.issue.Issue> issues, java.util.Collection<com.atlassian.jira.issue.status.Status> statuses)
          Legacy implementation.
 IssueStatusHistory getIssueStatusHistory(com.atlassian.crowd.embedded.api.User user, com.atlassian.jira.issue.Issue issue, java.util.Collection<com.atlassian.jira.issue.status.Status> statuses)
          Get the IssueStatus history for a single issue.
 
Methods inherited from class com.atlassian.greenhopper.global.AbstractLoggable
logDebug, logError, logException, logInfo, logTrace, logWarn
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IssueStatusHistoryServiceImpl

public IssueStatusHistoryServiceImpl()
Method Detail

getIssueStatusHistories

public java.util.List<IssueStatusHistory> getIssueStatusHistories(com.atlassian.crowd.embedded.api.User user,
                                                                  java.util.Collection<com.atlassian.jira.issue.Issue> issues,
                                                                  java.util.Collection<com.atlassian.jira.issue.status.Status> statuses)
Description copied from interface: IssueStatusHistoryService
Legacy implementation. Use collectStatusHistory as this is having bad performance.

Specified by:
getIssueStatusHistories in interface IssueStatusHistoryService

getIssueStatusHistory

public IssueStatusHistory getIssueStatusHistory(com.atlassian.crowd.embedded.api.User user,
                                                com.atlassian.jira.issue.Issue issue,
                                                java.util.Collection<com.atlassian.jira.issue.status.Status> statuses)
Description copied from interface: IssueStatusHistoryService
Get the IssueStatus history for a single issue.

Specified by:
getIssueStatusHistory in interface IssueStatusHistoryService

collectStatusHistory

public ErrorCollection collectStatusHistory(com.atlassian.crowd.embedded.api.User user,
                                            com.atlassian.query.Query query,
                                            IssueStatusHistoryCallback callback)
Read the status history from the Lucene history index. The index itself is having a very shallow document part: Documents only contain change date, issue ID and issue key. This means we can't query the index directly and read all we want from the documents in one pass, but rather have to use multiple passes for each status to find the matching changes. The results are being fed back into the provided callback implementation.

Specified by:
collectStatusHistory in interface IssueStatusHistoryService
Parameters:
user - : the user executing the query
query - : which issues do we want to look at
callback - : This will be informed of every status change found in the history.


Copyright © 2007-2012 Atlassian. All Rights Reserved.