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

[JGIT PATCH 1/2] Switch usage of AnyObjectId.toString() to new AnyObjectId.name()

From
Jonas Fonseca <fonseca@diku.dk>
Date
Sep 3, 2008, 09:01 UTC
Message-ID
<20080903090157.GB23406@diku.dk>

This allows objects that extend AnyObjectId to override toString() to their needs. With this it is possible to subclass for example RevCommit and provide a custom toString() implementation without breaking the revision walker.

AnyObjectId's toString() implementation is changed to make sure that users relying on the old behavior will break. This patch passes the test suite.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
---
 .../tst/org/spearce/jgit/lib/PackIndexTest.java    |   24 ++++++++++----------
 .../tst/org/spearce/jgit/lib/PackWriterTest.java   |    4 +-
 .../src/org/spearce/jgit/lib/AnyObjectId.java      |    7 +++++-
 .../src/org/spearce/jgit/lib/ObjectId.java         |    4 +-
 .../src/org/spearce/jgit/lib/RefLogWriter.java     |    2 +-
 .../src/org/spearce/jgit/lib/Repository.java       |    2 +-
 6 files changed, 24 insertions(+), 19 deletions(-)
diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexTest.java
index 8372a18..8ab380e 100644
--- a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexTest.java
+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexTest.java
@@ -111,21 +111,21 @@ public void testIteratorMethodsContract() {
 	public void testIteratorReturnedValues1() {
 		Iterator<PackIndex.MutableEntry> iter = smallIdx.iterator();
 		assertEquals("4b825dc642cb6eb9a060e54bf8d69288fbee4904", iter.next()
-				.toString());
+				.name());
 		assertEquals("540a36d136cf413e4b064c2b0e0a4db60f77feab", iter.next()
-				.toString());
+				.name());
 		assertEquals("5b6e7c66c276e7610d4a73c70ec1a1f7c1003259", iter.next()
-				.toString());
+				.name());
 		assertEquals("6ff87c4664981e4397625791c8ea3bbb5f2279a3", iter.next()
-				.toString());
+				.name());
 		assertEquals("82c6b885ff600be425b4ea96dee75dca255b69e7", iter.next()
-				.toString());
+				.name());
 		assertEquals("902d5476fa249b7abc9d84c611577a81381f0327", iter.next()
-				.toString());
+				.name());
 		assertEquals("aabf2ffaec9b497f0950352b3e582d73035c2035", iter.next()
-				.toString());
+				.name());
 		assertEquals("c59759f143fb1fe21c197981df75a7ee00290799", iter.next()
-				.toString());
+				.name());
 		assertFalse(iter.hasNext());
 	}
 
@@ -147,16 +147,16 @@ public void testCompareEntriesOffsetsWithFindOffsets() {
 	 */
 	public void testIteratorReturnedValues2() {
 		Iterator<PackIndex.MutableEntry> iter = denseIdx.iterator();
-		while (!iter.next().toString().equals(
+		while (!iter.next().name().equals(
 				"0a3d7772488b6b106fb62813c4d6d627918d9181")) {
 			// just iterating
 		}
 		assertEquals("1004d0d7ac26fbf63050a234c9b88a46075719d3", iter.next()
-				.toString()); // same level-1
+				.name()); // same level-1
 		assertEquals("10da5895682013006950e7da534b705252b03be6", iter.next()
-				.toString()); // same level-1
+				.name()); // same level-1
 		assertEquals("1203b03dc816ccbb67773f28b3c19318654b0bc8", iter.next()
-				.toString());
+				.name());
 	}
 
 }
diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackWriterTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackWriterTest.java
index c715182..72229d5 100644
--- a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackWriterTest.java
+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackWriterTest.java
@@ -125,7 +125,7 @@ public void testWriteEmptyPack1() throws IOException {
 		assertEquals(0, writer.getObjectsNumber());
 		assertEquals(0, pack.getObjectCount());
 		assertEquals("da39a3ee5e6b4b0d3255bfef95601890afd80709", writer
-				.computeName().toString());
+				.computeName().name());
 	}
 
 	/**
@@ -273,7 +273,7 @@ public void testWritePack3() throws MissingObjectException, IOException {
 		assertEquals(forcedOrder.length, writer.getObjectsNumber());
 		verifyObjectsOrder(forcedOrder);
 		assertEquals("ed3f96b8327c7c66b0f8f70056129f0769323d86", writer
-				.computeName().toString());
+				.computeName().name());
 	}
 
 	/**
diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/AnyObjectId.java b/org.spearce.jgit/src/org/spearce/jgit/lib/AnyObjectId.java
index ae8dfeb..f82b37f 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/AnyObjectId.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/AnyObjectId.java
@@ -406,7 +406,12 @@ private static void formatHexChar(final char[] dst, final int p, int w) {
 			dst[o--] = '0';
 	}
 
+	@Override
 	public String toString() {
+		return "AnyObjectId[" + name() + "]";
+	}
+
+	public String name() {
 		return new String(toHexCharArray());
 	}
 
@@ -422,7 +427,7 @@ public String toString() {
 	 */
 	public String abbreviate(final Repository repo) {
 		// TODO implement checking for uniqueness
-		return toString().substring(0, 7);
+		return name().substring(0, 7);
 	}
 
 	/**
diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/ObjectId.java b/org.spearce.jgit/src/org/spearce/jgit/lib/ObjectId.java
index 2148d10..52ce0d4 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/ObjectId.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/ObjectId.java
@@ -52,7 +52,7 @@
 
 	static {
 		ZEROID = new ObjectId(0, 0, 0, 0, 0);
-		ZEROID_STR = ZEROID.toString();
+		ZEROID_STR = ZEROID.name();
 	}
 
 	/**
@@ -94,7 +94,7 @@ public static final boolean isId(final String id) {
 	 * @return the hex string conversion of this id's content.
 	 */
 	public static final String toString(final ObjectId i) {
-		return i != null ? i.toString() : ZEROID_STR;
+		return i != null ? i.name() : ZEROID_STR;
 	}
 
 	/**
diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/RefLogWriter.java b/org.spearce.jgit/src/org/spearce/jgit/lib/RefLogWriter.java
index 3aecaf2..6de8c0f 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/RefLogWriter.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/RefLogWriter.java
@@ -88,7 +88,7 @@ private static String buildReflogString(Repository repo,
 			oldCommit = ObjectId.zeroId();
 			initial = " (initial)";
 		}
-		String s = oldCommit.toString() + " " + commit.toString() + " "
+		String s = oldCommit.name() + " " + commit.name() + " "
 				+ me.toExternalString() + "\t" + message + initial;
 		return s;
 	}
diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java b/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
index 7303438..b27c23d 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/Repository.java
@@ -209,7 +209,7 @@ public RepositoryConfig getConfig() {
 	 * @return suggested file name
 	 */
 	public File toFile(final AnyObjectId objectId) {
-		final String n = objectId.toString();
+		final String n = objectId.name();
 		String d=n.substring(0, 2);
 		String f=n.substring(2);
 		for (int i=0; i<objectsDirs.length; ++i) {
-- 
1.6.0.336.ga07ba
-- 
Jonas Fonseca
Next: Shawn O. Pearce
Message 1 of 8 in “Switch usage of AnyObjectId.toString() to new AnyObjectId.name()”
  1. 1/2 Switch usage of AnyObjectId.toString() to new AnyObjectId.name()Jonas Fonseca, Sep 3, 2008
  2. Shawn O. PearceSep 3, 2008
  3. 3/4 Switch usage of AnyObjectId.toString() to new AnyObjectId.name() in Eclipse pluginRobin Rosenberg, Sep 3, 2008
  4. 4/4 Switch usage of AnyObjectId.toString() to new AnyObjectId.name()Robin Rosenberg, Sep 3, 2008
  5. Robin RosenbergSep 3, 2008
  6. Shawn O. PearceSep 3, 2008
  7. Jonas FonsecaSep 3, 2008
  8. Shawn O. PearceSep 4, 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.