git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
MZMarek Zawirski <marek.zawirski@gmail.com>
Date
Jun 2, 2008, 21:24 UTC
Message-ID
<1212441883-12990-5-git-send-email-marek.zawirski@gmail.com>
In-Reply-To
<1212441883-12990-4-git-send-email-marek.zawirski@gmail.com>
This let us avoid using instanceof.
Signed-off-by: Marek Zawirski <marek.zawirski@gmail.com>
---
 .../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
Previous: Marek ZawirskiNext: Marek Zawirski
Message 5 of 24 in “Extensions in core needed by PackWriter”
  1. 00/12 Extensions in core needed by PackWriterMarek Zawirski, Jun 2, 2008
  2. 01/12 Format PackFile classMarek Zawirski, Jun 2, 2008
  3. 02/12 Format PackIndex classMarek Zawirski, Jun 2, 2008
  4. 03/12 Format PackIndexV1 classMarek Zawirski, Jun 2, 2008
  5. 04/12 Add getType() method to RevObject hierarchyMarek Zawirski, Jun 2, 2008
  6. 05/12 Replace instanceof in WalkFetchConnection with getType()Marek Zawirski, Jun 2, 2008
  7. 06/12 Move PackFile.SIGNATURE to Constants.PACK_SIGNATUREMarek Zawirski, Jun 2, 2008
  8. 07/12 Add overload of fromRaw() in MutableObjectId accepting int[]Marek Zawirski, Jun 2, 2008
  9. 08/12 Copying constructor of MutableObjectIdMarek Zawirski, Jun 2, 2008
  10. 09/12 Add getSize() method to ObjectIdSubclassMapMarek Zawirski, Jun 2, 2008
  11. 10/12 Add getObjectCount() method to PackFileMarek Zawirski, Jun 2, 2008
  12. 11/12 Entries iterator in PackIndex and indirectly PackFileMarek Zawirski, Jun 2, 2008
  13. 12/12 Add PackIndex specific tests, currently only iterators testsMarek Zawirski, Jun 2, 2008
  14. Robin RosenbergJun 6, 2008
  15. 09/12 Add size() method to ObjectIdSubclassMapMarek Zawirski, Jun 7, 2008
  16. Robin RosenbergJun 6, 2008
  17. 04/12 Add getType() method to RevObject hierarchyMarek Zawirski, Jun 7, 2008
  18. Johannes SchindelinJun 2, 2008
  19. Marek ZawirskiJun 2, 2008
  20. Johannes SchindelinJun 2, 2008
  21. Robin RosenbergJun 6, 2008
  22. Marek ZawirskiJun 7, 2008
  23. Shawn O. PearceJun 7, 2008
  24. Robin RosenbergJun 10, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.