From 05bf3d5b6768aa85548ab6f9adc233fc9f19b049 Mon Sep 17 00:00:00 2001 From: Rafael Cavazin <rafaelcavazin@gmail.com> Date: Sun, 27 Jan 2013 11:14:08 -0500 Subject: [PATCH] reintegrating translation branch --- src/com/gitblit/models/Activity.java | 116 +++++++++++++++++++--------------------------------------- 1 files changed, 38 insertions(+), 78 deletions(-) diff --git a/src/com/gitblit/models/Activity.java b/src/com/gitblit/models/Activity.java index f24a5ab..59405c7 100644 --- a/src/com/gitblit/models/Activity.java +++ b/src/com/gitblit/models/Activity.java @@ -17,14 +17,17 @@ import java.io.Serializable; import java.util.ArrayList; +import java.util.Collections; import java.util.Date; import java.util.HashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.Set; -import org.eclipse.jgit.lib.PersonIdent; import org.eclipse.jgit.revwalk.RevCommit; +import com.gitblit.utils.StringUtils; import com.gitblit.utils.TimeUtils; /** @@ -41,7 +44,7 @@ public final Date endDate; - public final List<RepositoryCommit> commits; + private final Set<RepositoryCommit> commits; private final Map<String, Metric> authorMetrics; @@ -67,26 +70,47 @@ public Activity(Date date, long duration) { startDate = date; endDate = new Date(date.getTime() + duration); - commits = new ArrayList<RepositoryCommit>(); + commits = new LinkedHashSet<RepositoryCommit>(); authorMetrics = new HashMap<String, Metric>(); repositoryMetrics = new HashMap<String, Metric>(); } + /** + * Adds a commit to the activity object as long as the commit is not a + * duplicate. + * + * @param repository + * @param branch + * @param commit + * @return a RepositoryCommit, if one was added. Null if this is duplicate + * commit + */ public RepositoryCommit addCommit(String repository, String branch, RevCommit commit) { RepositoryCommit commitModel = new RepositoryCommit(repository, branch, commit); - commits.add(commitModel); + if (commits.add(commitModel)) { + if (!repositoryMetrics.containsKey(repository)) { + repositoryMetrics.put(repository, new Metric(repository)); + } + repositoryMetrics.get(repository).count++; - if (!repositoryMetrics.containsKey(repository)) { - repositoryMetrics.put(repository, new Metric(repository)); + String author = StringUtils.removeNewlines(commit.getAuthorIdent().getEmailAddress()).toLowerCase(); + if (!authorMetrics.containsKey(author)) { + authorMetrics.put(author, new Metric(author)); + } + authorMetrics.get(author).count++; + return commitModel; } - repositoryMetrics.get(repository).count++; - - String author = commit.getAuthorIdent().getEmailAddress().toLowerCase(); - if (!authorMetrics.containsKey(author)) { - authorMetrics.put(author, new Metric(author)); - } - authorMetrics.get(author).count++; - return commitModel; + return null; + } + + public int getCommitCount() { + return commits.size(); + } + + public List<RepositoryCommit> getCommits() { + List<RepositoryCommit> list = new ArrayList<RepositoryCommit>(commits); + Collections.sort(list); + return list; } public Map<String, Metric> getAuthorMetrics() { @@ -101,69 +125,5 @@ public int compareTo(Activity o) { // reverse chronological order return o.startDate.compareTo(startDate); - } - - /** - * Model class to represent a RevCommit, it's source repository, and the - * branch. This class is used by the activity page. - * - * @author James Moger - */ - public static class RepositoryCommit implements Serializable, Comparable<RepositoryCommit> { - - private static final long serialVersionUID = 1L; - - public final String repository; - - public final String branch; - - private final RevCommit commit; - - private List<RefModel> refs; - - public RepositoryCommit(String repository, String branch, RevCommit commit) { - this.repository = repository; - this.branch = branch; - this.commit = commit; - } - - public void setRefs(List<RefModel> refs) { - this.refs = refs; - } - - public List<RefModel> getRefs() { - return refs; - } - - public String getName() { - return commit.getName(); - } - - public String getShortName() { - return commit.getName().substring(0, 8); - } - - public String getShortMessage() { - return commit.getShortMessage(); - } - - public int getParentCount() { - return commit.getParentCount(); - } - - public PersonIdent getAuthorIdent() { - return commit.getAuthorIdent(); - } - - @Override - public int compareTo(RepositoryCommit o) { - // reverse-chronological order - if (commit.getCommitTime() > o.commit.getCommitTime()) { - return -1; - } else if (commit.getCommitTime() < o.commit.getCommitTime()) { - return 1; - } - return 0; - } } } -- Gitblit v1.9.1