[JGIT PATCH 04/12] Add getType() method to RevObject hierarchy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This let us avoid using instanceof.

Signed-off-by: Marek Zawirski <marek.zawirski@xxxxxxxxx>
---
 .../src/org/spearce/jgit/revwalk/RevBlob.java      |    6 ++++++
 .../src/org/spearce/jgit/revwalk/RevCommit.java    |    5 +++++
 .../src/org/spearce/jgit/revwalk/RevObject.java    |    8 ++++++++
 .../src/org/spearce/jgit/revwalk/RevTag.java       |    5 +++++
 .../src/org/spearce/jgit/revwalk/RevTree.java      |    6 ++++++
 5 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevBlob.java b/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevBlob.java
index f6d34f4..66cdc02 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevBlob.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevBlob.java
@@ -38,6 +38,7 @@
 package org.spearce.jgit.revwalk;
 
 import org.spearce.jgit.lib.AnyObjectId;
+import org.spearce.jgit.lib.Constants;
 
 /** A binary file, or a symbolic link. */
 public class RevBlob extends RevObject {
@@ -55,4 +56,9 @@ public class RevBlob extends RevObject {
 	void parse(final RevWalk walk) {
 		flags |= PARSED;
 	}
+	
+	@Override
+	public int getType() {
+		return Constants.OBJ_BLOB;
+	}
 }
diff --git a/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevCommit.java b/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevCommit.java
index 0aa7098..77f1d1a 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevCommit.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevCommit.java
@@ -135,6 +135,11 @@ public class RevCommit extends RevObject {
 		buffer = raw;
 		flags |= PARSED;
 	}
+	
+	@Override
+	public int getType() {
+		return Constants.OBJ_COMMIT;
+	}
 
 	static void carryFlags(RevCommit c, final int carry) {
 		for (;;) {
diff --git a/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevObject.java b/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevObject.java
index 86c50b5..451205c 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevObject.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevObject.java
@@ -42,6 +42,7 @@ import java.io.IOException;
 import org.spearce.jgit.errors.IncorrectObjectTypeException;
 import org.spearce.jgit.errors.MissingObjectException;
 import org.spearce.jgit.lib.AnyObjectId;
+import org.spearce.jgit.lib.Constants;
 import org.spearce.jgit.lib.ObjectId;
 
 /** Base object type accessed during revision walking. */
@@ -56,6 +57,13 @@ public abstract class RevObject extends ObjectId {
 
 	abstract void parse(RevWalk walk) throws MissingObjectException,
 			IncorrectObjectTypeException, IOException;
+	
+	/**
+	 * Get Git object type. See {@link Constants}.
+	 * 
+	 * @return object type
+	 */
+	public abstract int getType();
 
 	/**
 	 * Get the name of this object.
diff --git a/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevTag.java b/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevTag.java
index 668819c..bbb18ee 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevTag.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevTag.java
@@ -96,6 +96,11 @@ public class RevTag extends RevObject {
 		flags |= PARSED;
 	}
 
+	@Override
+	public int getType() {
+		return Constants.OBJ_TAG;
+	}
+	
 	/**
 	 * Parse this tag buffer for display.
 	 * 
diff --git a/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevTree.java b/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevTree.java
index 7ad9be0..e1cd4b5 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevTree.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevTree.java
@@ -38,6 +38,7 @@
 package org.spearce.jgit.revwalk;
 
 import org.spearce.jgit.lib.AnyObjectId;
+import org.spearce.jgit.lib.Constants;
 
 /** A reference to a tree of subtrees/files. */
 public class RevTree extends RevObject {
@@ -55,4 +56,9 @@ public class RevTree extends RevObject {
 	void parse(final RevWalk walk) {
 		flags |= PARSED;
 	}
+	
+	@Override
+	public int getType() {
+		return Constants.OBJ_TREE;
+	}
 }
-- 
1.5.5.1

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux