diff options
author | Shawn O. Pearce <sop@google.com> | 2009-06-07 15:58:14 -0700 |
---|---|---|
committer | Shawn O. Pearce <sop@google.com> | 2009-06-07 16:17:27 -0700 |
commit | 57b4db7eec526e0d0df9355695f2a80d7316c301 (patch) | |
tree | e77f114e82b8086ebcd3af3fa157aca3b478638c | |
parent | 090cf371f18de54705e4ee8bc7d7cef46390f4f7 (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.java | 48 |
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; |