Package com.madgnome.jira.plugins.jirachievements.statistics

Source Code of com.madgnome.jira.plugins.jirachievements.statistics.OpenedByUserStatistic

package com.madgnome.jira.plugins.jirachievements.statistics;

import com.atlassian.crowd.embedded.api.User;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.changehistory.ChangeHistoryManager;
import com.atlassian.jira.issue.search.SearchException;
import com.atlassian.jira.jql.parser.JqlParseException;
import com.atlassian.jira.project.Project;
import com.atlassian.jira.user.util.UserUtil;
import com.madgnome.jira.plugins.jirachievements.data.ao.StatisticRefEnum;
import com.madgnome.jira.plugins.jirachievements.data.bean.ProjectComponentKey;
import com.madgnome.jira.plugins.jirachievements.data.bean.ProjectVersionKey;
import com.madgnome.jira.plugins.jirachievements.services.StatisticManager;
import com.madgnome.jira.plugins.jirachievements.services.UserManager;
import com.madgnome.jira.plugins.jirachievements.services.WorkflowConfiguration;
import com.madgnome.jira.plugins.jirachievements.utils.data.IssueSearcher;
import gnu.trove.TObjectIntHashMap;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class OpenedByUserStatistic extends AbstractStatisticCalculator
{

  public OpenedByUserStatistic(IssueSearcher issueSearcher, UserUtil userUtil, ChangeHistoryManager changeHistoryManager, StatisticManager statisticManager, UserManager userManager, WorkflowConfiguration workflowConfiguration)
  {
    super(issueSearcher, userUtil, changeHistoryManager, statisticManager, userManager, workflowConfiguration);
  }

  @Override
  protected StatisticRefEnum getStatisticRef()
  {
    return StatisticRefEnum.CREATED_ISSUE_COUNT;
  }

  @Override
  public void calculate() throws SearchException, JqlParseException
  {
    TObjectIntHashMap<String> resolvedByUser = new TObjectIntHashMap<String>();
    Map<String, TObjectIntHashMap<String>> resolvedByUserByProject = new HashMap<String, TObjectIntHashMap<String>>();
    Map<ProjectComponentKey, TObjectIntHashMap<String>> resolvedByUserByComponent = new HashMap<ProjectComponentKey, TObjectIntHashMap<String>>();
    Map<ProjectVersionKey, TObjectIntHashMap<String>> resolvedByUserByVersion = new HashMap<ProjectVersionKey, TObjectIntHashMap<String>>();

    List<Issue> matchingIssues = searchIssuesMatchingQuery();
    for (Issue issue : matchingIssues)
    {
      Project project = issue.getProjectObject();
      User reporterUser = issue.getReporterUser();
      if (reporterUser == null)
      {
        continue;
      }
     
      String user = reporterUser.getName();
      updateUserStatistic(resolvedByUser, user);
      updateProjectStatistic(resolvedByUserByProject, project, user);
      updateComponentsStatistic(resolvedByUserByComponent, project, issue.getComponentObjects(), user);
      updateVersionsStatistic(resolvedByUserByVersion, project, issue.getAffectedVersions(), user);
    }

    saveStatisticsByUser(resolvedByUser);
    saveStatisticsByProject(resolvedByUserByProject);
    saveStatisticsByComponent(resolvedByUserByComponent);
    saveStatisticsByVersion(resolvedByUserByVersion);
  }

  private List<Issue> searchIssuesMatchingQuery() throws JqlParseException, SearchException
  {
    return issueSearcher.searchIssues("");
  }

}
TOP

Related Classes of com.madgnome.jira.plugins.jirachievements.statistics.OpenedByUserStatistic

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.