From: Shawn O. Pearce Date: Tue, 12 Aug 2008 01:08:01 GMT Subject: [EGIT PATCH 14/26] Support creating a new DirCacheEntry for an arbitrary path Message-ID: <1218503293-14057-15-git-send-email-spearce@spearce.org> In-Reply-To: <1218503293-14057-14-git-send-email-spearce@spearce.org> Applications which use a DirCacheBuilder may need to build their own DirCacheEntry in order to insert new records into the index file. Signed-off-by: Shawn O. Pearce --- .../org/spearce/jgit/dircache/DirCacheEntry.java | 24 ++++++++++++++++++++ 1 files changed, 24 insertions(+), 0 deletions(-) diff --git a/org.spearce.jgit/src/org/spearce/jgit/dircache/DirCacheEntry.java b/org.spearce.jgit/src/org/spearce/jgit/dircache/DirCacheEntry.java index 8ca8f22..eba2678 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/dircache/DirCacheEntry.java +++ b/org.spearce.jgit/src/org/spearce/jgit/dircache/DirCacheEntry.java @@ -114,6 +114,30 @@ public class DirCacheEntry { in.skip(expLen - actLen); } + /** + * Create an empty entry. + * + * @param newPath + * name of the cache entry. + */ + public DirCacheEntry(final String newPath) { + this(Constants.encode(newPath)); + } + + /** + * Create an empty entry. + * + * @param newPath + * name of the cache entry, in the standard encoding. + */ + public DirCacheEntry(final byte[] newPath) { + info = new byte[INFO_LEN]; + infoOffset = 0; + + path = newPath; + NB.encodeInt16(info, infoOffset + P_FLAGS, path.length); + } + void write(final OutputStream os) throws IOException { final int pathLen = path.length; os.write(info, infoOffset, INFO_LEN); -- 1.6.0.rc2.22.g71b99