From 4ab184198bd7eac67eb767cf2e19423f618a70ae Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 03 Jun 2011 17:44:19 -0400 Subject: [PATCH] GitNotes. Unit testing. More correct refs. --- src/com/gitblit/models/RefModel.java | 79 ++++++++++++++++++++++++++++++++------- 1 files changed, 64 insertions(+), 15 deletions(-) diff --git a/src/com/gitblit/models/RefModel.java b/src/com/gitblit/models/RefModel.java index b33c8ba..39bf19c 100644 --- a/src/com/gitblit/models/RefModel.java +++ b/src/com/gitblit/models/RefModel.java @@ -19,50 +19,99 @@ import java.util.Date; import org.eclipse.jgit.lib.ObjectId; +import org.eclipse.jgit.lib.PersonIdent; import org.eclipse.jgit.lib.Ref; import org.eclipse.jgit.revwalk.RevCommit; +import org.eclipse.jgit.revwalk.RevObject; +import org.eclipse.jgit.revwalk.RevTag; public class RefModel implements Serializable, Comparable<RefModel> { private static final long serialVersionUID = 1L; public final String displayName; - public final RevCommit commit; - public transient Ref ref; + public final RevObject referencedObject; + public transient Ref reference; - public RefModel(String displayName, Ref ref, RevCommit commit) { + public RefModel(String displayName, Ref ref, RevObject refObject) { this.displayName = displayName; - this.ref = ref; - this.commit = commit; + this.reference = ref; + this.referencedObject = refObject; } public Date getDate() { - return new Date(commit.getCommitTime() * 1000L); + Date date = new Date(0); + if (referencedObject != null) { + if (referencedObject instanceof RevTag) { + date = ((RevTag) referencedObject).getTaggerIdent().getWhen(); + } else if (referencedObject instanceof RevCommit) { + date = ((RevCommit) referencedObject).getCommitterIdent().getWhen(); + } + } + return date; } public String getName() { - return ref.getName(); + return reference.getName(); } - public ObjectId getCommitId() { - return commit.getId(); + public int getReferencedObjectType() { + int type = referencedObject.getType(); + if (referencedObject instanceof RevTag) { + type = ((RevTag) referencedObject).getObject().getType(); + } + return type; } - public String getShortLog() { - return commit.getShortMessage(); + public ObjectId getReferencedObjectId() { + if (referencedObject instanceof RevTag) { + return ((RevTag) referencedObject).getObject().getId(); + } + return referencedObject.getId(); + } + + public String getShortMessage() { + String message = ""; + if (referencedObject instanceof RevTag) { + message = ((RevTag) referencedObject).getShortMessage(); + } else if (referencedObject instanceof RevCommit) { + message = ((RevCommit) referencedObject).getShortMessage(); + } + return message; + } + + public String getFullMessage() { + String message = ""; + if (referencedObject instanceof RevTag) { + message = ((RevTag) referencedObject).getFullMessage(); + } else if (referencedObject instanceof RevCommit) { + message = ((RevCommit) referencedObject).getFullMessage(); + } + return message; + } + + public PersonIdent getAuthorIdent() { + if (referencedObject instanceof RevTag) { + return ((RevTag) referencedObject).getTaggerIdent(); + } else if (referencedObject instanceof RevCommit) { + return ((RevCommit) referencedObject).getAuthorIdent(); + } + return null; } public ObjectId getObjectId() { - return ref.getObjectId(); + return reference.getObjectId(); } public boolean isAnnotatedTag() { - // ref.isPeeled() ?? - return !getCommitId().equals(getObjectId()); + if (referencedObject instanceof RevTag) { + return !getReferencedObjectId().equals(getObjectId()); + } + return reference.getPeeledObjectId() != null; } @Override public int hashCode() { - return getCommitId().hashCode() + getName().hashCode(); + return getReferencedObjectId().hashCode() + getName().hashCode(); } @Override -- Gitblit v1.9.1