package edu.asu.spring.quadriga.service.stats.impl;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.List;
import org.springframework.stereotype.Service;
import edu.asu.spring.quadriga.domain.network.INetwork;
import edu.asu.spring.quadriga.domain.workbench.IProject;
import edu.asu.spring.quadriga.domain.workbench.IProjectWorkspace;
import edu.asu.spring.quadriga.service.stats.IContributionStatsManager;
/**
* This class is used to get the contribution count of network and workspace
* @author Bharath Srikantan
*/
@Service
public class ContributionStatsManager implements IContributionStatsManager {
/**
* This method returns HashMap containing date as string and corresponding count of number
* of networks that were Approved/Rejected/Submitted depending on 'status'
* @author Bharath Srikantan
*
*/
@Override
public HashMap<String, Integer> getContributionCountByStatus (List<INetwork> networks, String status) {
String DATE_FORMAT = "dd-MMM-yy";
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
HashMap<String, Integer> contributionCount = new HashMap<String, Integer>();
for(INetwork network : networks) {
String networkCreationDate = sdf.format(network.getCreatedDate());
if(network.getStatus().equals(status) || status.equals("SUBMITTED")) {
if(contributionCount.containsKey(networkCreationDate)) {
contributionCount.put(networkCreationDate, contributionCount.get(networkCreationDate)+1);
} else {
contributionCount.put(networkCreationDate, 1);
}
}
}
return contributionCount;
}
/**
* This method returns HashMap containing date as string and corresponding count of number
* of workspace created on that date.
* @author Bharath Srikantan
*
*/
@Override
public HashMap<String, Integer> getWorkspaceContribution (IProject project) {
String DATE_FORMAT = "dd-MMM-yy";
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
HashMap<String, Integer> contributionCount = new HashMap<String, Integer>();
for(IProjectWorkspace ws : project.getProjectWorkspaces()) {
String workspaceCreationDate = sdf.format(ws.getCreatedDate());
if(contributionCount.containsKey(workspaceCreationDate)) {
contributionCount.put(workspaceCreationDate, contributionCount.get(workspaceCreationDate)+1);
} else {
contributionCount.put(workspaceCreationDate, 1);
}
}
return contributionCount;
}
}