diff src/org/tmatesoft/hg/core/HgChangesetHandler.java @ 514:5dcb4581c8ef

Report renames when following file history tree with HgFileRenameHandlerMixin
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Mon, 17 Dec 2012 19:06:07 +0100
parents 31a89587eb04
children 6526d8adbc0f
line wrap: on
line diff
--- a/src/org/tmatesoft/hg/core/HgChangesetHandler.java	Mon Dec 17 15:01:57 2012 +0100
+++ b/src/org/tmatesoft/hg/core/HgChangesetHandler.java	Mon Dec 17 19:06:07 2012 +0100
@@ -17,6 +17,7 @@
 package org.tmatesoft.hg.core;
 
 import org.tmatesoft.hg.internal.Callback;
+import org.tmatesoft.hg.util.Adaptable;
 import org.tmatesoft.hg.util.Path;
 
 /**
@@ -37,20 +38,17 @@
 
 	/**
 	 * When {@link HgLogCommand} is executed against file, handler passed to {@link HgLogCommand#execute(HgChangesetHandler)} may optionally
-	 * implement this interface to get information about file renames. Method {@link #copy(HgFileRevision, HgFileRevision)} would
-	 * get invoked prior any changeset of the original file (if file history being followed) is reported via {@link #cset(HgChangeset)}.
+	 * implement this interface (or make it available through {@link Adaptable#getAdapter(Class)} to get information about file renames. 
+	 * Method {@link #copy(HgFileRevision, HgFileRevision)} would get invoked prior any changeset of the original file 
+	 * (if file history being followed) is reported via {@link #cset(HgChangeset)}.
 	 * 
 	 * For {@link HgLogCommand#file(Path, boolean)} with renamed file path and follow argument set to false, 
 	 * {@link #copy(HgFileRevision, HgFileRevision)} would be invoked for the first copy/rename in the history of the file, but not 
 	 * followed by any changesets. 
+	 * 
+	 * @see HgFileRenameHandlerMixin
 	 */
 	@Callback
-	public interface WithCopyHistory extends HgChangesetHandler {
-		// XXX perhaps, should distinguish copy from rename? And what about merged revisions and following them?
-
-		/**
-		 * @throws HgCallbackTargetException wrapper object for any exception user code may produce 
-		 */
-		void copy(HgFileRevision from, HgFileRevision to) throws HgCallbackTargetException;
+	public interface WithCopyHistory extends HgChangesetHandler, HgFileRenameHandlerMixin {
 	}
 }