From 357109c5a5518db5925f49a6700a87e7ed30ca14 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 28 Dec 2011 16:19:29 -0500
Subject: [PATCH] Unit testing. Documentation.
---
src/com/gitblit/models/RefModel.java | 94 +++++++++++++++++++++++++++++++++++++++-------
1 files changed, 79 insertions(+), 15 deletions(-)
diff --git a/src/com/gitblit/models/RefModel.java b/src/com/gitblit/models/RefModel.java
index b33c8ba..806700b 100644
--- a/src/com/gitblit/models/RefModel.java
+++ b/src/com/gitblit/models/RefModel.java
@@ -19,50 +19,109 @@
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;
+/**
+ * RefModel is a serializable model class that represents a tag or branch and
+ * includes the referenced object.
+ *
+ * @author James Moger
+ *
+ */
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) {
+ RevTag tag = (RevTag) referencedObject;
+ if (tag.getTaggerIdent() != null) {
+ date = tag.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
@@ -78,4 +137,9 @@
public int compareTo(RefModel o) {
return getDate().compareTo(o.getDate());
}
+
+ @Override
+ public String toString() {
+ return displayName;
+ }
}
\ No newline at end of file
--
Gitblit v1.9.1