From: Shawn O. Pearce Date: Sun, 29 Jun 2008 07:59:13 GMT Subject: [JGIT PATCH 03/21] Use PackedObjectInfo as a base class for PackWriter's ObjectToPack Message-ID: <1214726371-93520-4-git-send-email-spearce@spearce.org> In-Reply-To: <1214726371-93520-3-git-send-email-spearce@spearce.org> The ObjectId and offset portions of PackedObjectInfo are also needed by ObjectToPack. By sharing the same base class with IndexPack we can later abstract the index writing function out and use it inside of both IndexPack and PackWriter. Signed-off-by: Shawn O. Pearce --- .../src/org/spearce/jgit/lib/PackWriter.java | 28 +++----------------- 1 files changed, 4 insertions(+), 24 deletions(-) diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/PackWriter.java b/org.spearce.jgit/src/org/spearce/jgit/lib/PackWriter.java index cec2ab0..ccc6cfe 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/lib/PackWriter.java +++ b/org.spearce.jgit/src/org/spearce/jgit/lib/PackWriter.java @@ -56,6 +56,7 @@ import org.spearce.jgit.revwalk.ObjectWalk; import org.spearce.jgit.revwalk.RevFlag; import org.spearce.jgit.revwalk.RevObject; import org.spearce.jgit.revwalk.RevSort; +import org.spearce.jgit.transport.PackedObjectInfo; import org.spearce.jgit.util.CountingOutputStream; import org.spearce.jgit.util.NB; @@ -617,7 +618,7 @@ public class PackWriter { assert !otp.isWritten(); - otp.markWritten(countingOut.getCount()); + otp.setOffset(countingOut.getCount()); if (otp.isDeltaRepresentation()) writeDeltaObject(otp); else @@ -762,13 +763,11 @@ public class PackWriter { * pack-file and object status. * */ - static class ObjectToPack extends ObjectId { + static class ObjectToPack extends PackedObjectInfo { private ObjectId deltaBase; private PackedObjectLoader reuseLoader; - private long offset = -1; - private int deltaDepth; private boolean wantWrite; @@ -838,26 +837,7 @@ public class PackWriter { * @return true if object is already written; false otherwise. */ boolean isWritten() { - return offset != -1; - } - - /** - * @return offset in pack when object has been already written, or -1 if - * it has not been written yet - */ - long getOffset() { - return offset; - } - - /** - * Mark object as written. This information is used to achieve - * delta-base precedence in a pack file. - * - * @param offset - * offset where written object starts - */ - void markWritten(long offset) { - this.offset = offset; + return getOffset() != 0; } PackedObjectLoader getReuseLoader() { -- 1.5.6.74.g8a5e