summaryrefslogtreecommitdiff
path: root/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java')
-rw-r--r--subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java61
1 files changed, 58 insertions, 3 deletions
diff --git a/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java b/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
index b93cb9c..aaef8f8 100644
--- a/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
+++ b/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
@@ -30,6 +30,7 @@ import java.io.OutputStream;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.io.ByteArrayOutputStream;
+import java.io.UnsupportedEncodingException;
import java.util.Collection;
import java.util.Collections;
@@ -705,6 +706,7 @@ public class SVNClient implements ISVNClient
boolean ignoreExternals)
throws ClientException;
+ @Deprecated
public void blame(String path, Revision pegRevision,
Revision revisionStart,
Revision revisionEnd, boolean ignoreMimeType,
@@ -716,13 +718,28 @@ public class SVNClient implements ISVNClient
includeMergedRevisions, callback, null);
}
+ @Deprecated
+ public void blame(String path, Revision pegRevision,
+ Revision revisionStart,
+ Revision revisionEnd, boolean ignoreMimeType,
+ boolean includeMergedRevisions,
+ BlameCallback callback,
+ DiffOptions options)
+ throws ClientException
+ {
+ blame(path, pegRevision, revisionStart, revisionEnd,
+ ignoreMimeType, includeMergedRevisions, options,
+ null, new BlameCallbackAdapter(callback));
+ }
+
public native void blame(String path, Revision pegRevision,
Revision revisionStart,
Revision revisionEnd, boolean ignoreMimeType,
boolean includeMergedRevisions,
- BlameCallback callback,
- DiffOptions options)
- throws ClientException;
+ DiffOptions options,
+ BlameRangeCallback rangeCallback,
+ BlameLineCallback lineCallback)
+ throws ClientException;
public native void setConfigDirectory(String configDir)
throws ClientException;
@@ -897,4 +914,42 @@ public class SVNClient implements ISVNClient
null);
}
}
+
+ /**
+ * A private class that adapts from BlameLineCallback to BlameCallback.
+ */
+ @Deprecated
+ private class BlameCallbackAdapter implements BlameLineCallback
+ {
+ private BlameCallback wrappedCallback = null;
+
+ public BlameCallbackAdapter(BlameCallback callback)
+ {
+ wrappedCallback = callback;
+ }
+
+ // Implementation of BlameLineCallback
+ public void singleLine(long lineNum, long revision,
+ Map<String, byte[]> revProps, long mergedRevision,
+ Map<String, byte[]> mergedRevProps,
+ String mergedPath, boolean localChange,
+ byte[] line)
+ throws ClientException
+ {
+ if (wrappedCallback == null)
+ return;
+
+ String convertedLine = null;
+ try {
+ convertedLine = new String(line, "UTF-8");
+ }
+ catch (UnsupportedEncodingException ex) {
+ throw ClientException.fromException(ex);
+ }
+
+ wrappedCallback.singleLine(lineNum, revision,
+ revProps, mergedRevision, mergedRevProps,
+ mergedPath, convertedLine, localChange);
+ }
+ }
}