Add QuotedString class to handle Git path style quoting rules
commit3f3ec0bc1f068ada5908fc6d48cf7483a8b4fa95
authorShawn O. Pearce <spearce@spearce.org>
Thu, 11 Dec 2008 00:57:42 +0000 (10 16:57 -0800)
committerRobin Rosenberg <robin.rosenberg@dewire.com>
Sat, 13 Dec 2008 02:13:24 +0000 (13 03:13 +0100)
tree3fb3274c44eb63236566564b8482c914216da908
parent9ccf38801ab7638bd76fb7ef1a0f9f8e0b813207
Add QuotedString class to handle Git path style quoting rules

Git patch files can contain file names which are quoted using the
roughly the C language quoting rules.  In order to correctly create
or parse these files we must implement a quoting style that matches
those specific rules.

QuotedString itself is an abstract API so callers can be passed a
quoting style based on the context of where their output will be
used, and multiple styles could be supported.  This may be useful
if jgit ever grows a "git for-each-ref" style of output where Perl,
Python, Tcl and Bourne style quoting might be necessary.

References through the singleton QuotedString.GIT_PATH should be
able to bypass the virtual function table, as the specific type is
mentioned in the field declaration and that type is final.  A good
JIT should be able to remove the abstraction costs when the caller
has hardcoded the quoting style.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
org.spearce.jgit.test/tst/org/spearce/jgit/util/QuotedStringGitPathStyleTest.java [new file with mode: 0644]
org.spearce.jgit/src/org/spearce/jgit/util/QuotedString.java [new file with mode: 0644]