summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2009-06-07 15:58:14 -0700
committerShawn O. Pearce <sop@google.com>2009-06-07 16:17:27 -0700
commit57b4db7eec526e0d0df9355695f2a80d7316c301 (patch)
treee77f114e82b8086ebcd3af3fa157aca3b478638c
parent090cf371f18de54705e4ee8bc7d7cef46390f4f7 (diff)
Refactor submitter to PersonIdent mapping in MergeOp
This permits us to reuse the logic for other contexts where we want to convert from the one to the other. Signed-off-by: Shawn O. Pearce <sop@google.com>
-rw-r--r--src/main/java/com/google/gerrit/git/MergeOp.java48
1 files changed, 27 insertions, 21 deletions
diff --git a/src/main/java/com/google/gerrit/git/MergeOp.java b/src/main/java/com/google/gerrit/git/MergeOp.java
index 0f09e6d069..8f2cce69b3 100644
--- a/src/main/java/com/google/gerrit/git/MergeOp.java
+++ b/src/main/java/com/google/gerrit/git/MergeOp.java
@@ -65,6 +65,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.TimeZone;
/**
* Merges changes in submission order into a single branch.
@@ -589,31 +590,12 @@ public class MergeOp {
log.error("Can't read approval records for " + n.patchsetId, e);
}
- Account submitterAcct = null;
- if (submitAudit != null) {
- submitterAcct = Common.getAccountCache().get(submitAudit.getAccountId());
- }
-
+ final PersonIdent submitIdent = toPersonIdent(submitAudit);
final Commit mergeCommit = new Commit(db);
mergeCommit.setTreeId(m.getResultTreeId());
mergeCommit.setParentIds(new ObjectId[] {mergeTip});
mergeCommit.setAuthor(n.getAuthorIdent());
- if (submitterAcct != null) {
- String name = submitterAcct.getFullName();
- if (name == null || name.length() == 0) {
- name = "Anonymous Coward";
- }
-
- String email = submitterAcct.getPreferredEmail();
- if (email == null || email.length() == 0) {
- email = "account-" + submitterAcct.getId().get() + "@localhost";
- }
-
- mergeCommit.setCommitter(new PersonIdent(name, email, submitAudit
- .getGranted(), myIdent.getTimeZone()));
- } else {
- mergeCommit.setCommitter(myIdent);
- }
+ mergeCommit.setCommitter(submitIdent != null ? submitIdent : myIdent);
mergeCommit.setMessage(msgbuf.toString());
final ObjectId id = m.getObjectWriter().writeCommit(mergeCommit);
@@ -623,6 +605,30 @@ public class MergeOp {
newCommits.put(n.patchsetId.getParentKey(), mergeTip);
}
+ private PersonIdent toPersonIdent(final ChangeApproval audit) {
+ if (audit == null) {
+ return null;
+ }
+
+ final Account a = Common.getAccountCache().get(audit.getAccountId());
+ if (a == null) {
+ return null;
+ }
+
+ String name = a.getFullName();
+ if (name == null || name.length() == 0) {
+ name = "Anonymous Coward";
+ }
+
+ String email = a.getPreferredEmail();
+ if (email == null || email.length() == 0) {
+ email = "account-" + a.getId().get() + "@localhost";
+ }
+
+ final TimeZone tz = myIdent.getTimeZone();
+ return new PersonIdent(name, email, audit.getGranted(), tz);
+ }
+
private boolean endsWithKey(final String msg) {
if (msg.length() == 0 || !msg.endsWith("\n") || msg.length() < 2) {
return false;