Mercurial > hg4j
comparison src/org/tmatesoft/hg/core/HgLogCommand.java @ 205:ffc5f6d59f7e
HgLogCommand.Handler is used in few places, pull up to top-level class, HgChangesetHandler
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Thu, 28 Apr 2011 02:00:42 +0200 |
| parents | c9b305df0b89 |
| children | 41a778e3fd31 |
comparison
equal
deleted
inserted
replaced
| 204:883f1efbcf27 | 205:ffc5f6d59f7e |
|---|---|
| 170 return collector.getChanges(); | 170 return collector.getChanges(); |
| 171 } | 171 } |
| 172 | 172 |
| 173 /** | 173 /** |
| 174 * | 174 * |
| 175 * @param inspector | 175 * @param handler callback to process changesets. |
| 176 * @throws IllegalArgumentException when inspector argument is null | 176 * @throws IllegalArgumentException when inspector argument is null |
| 177 * @throws ConcurrentModificationException if this log command instance is already running | 177 * @throws ConcurrentModificationException if this log command instance is already running |
| 178 */ | 178 */ |
| 179 public void execute(Handler handler) throws HgException { | 179 public void execute(HgChangesetHandler handler) throws HgException { |
| 180 if (handler == null) { | 180 if (handler == null) { |
| 181 throw new IllegalArgumentException(); | 181 throw new IllegalArgumentException(); |
| 182 } | 182 } |
| 183 if (csetTransform != null) { | 183 if (csetTransform != null) { |
| 184 throw new ConcurrentModificationException(); | 184 throw new ConcurrentModificationException(); |
| 257 } | 257 } |
| 258 return parentHelper; | 258 return parentHelper; |
| 259 } | 259 } |
| 260 | 260 |
| 261 | 261 |
| 262 public interface Handler { | 262 /** |
| 263 /** | 263 * @deprecated Use {@link HgChangesetHandler} instead. This interface is left temporarily for compatibility. |
| 264 * @param changeset not necessarily a distinct instance each time, {@link HgChangeset#clone() clone()} if need a copy. | 264 */ |
| 265 */ | 265 @Deprecated() |
| 266 void next(HgChangeset changeset); | 266 public interface Handler extends HgChangesetHandler { |
| 267 } | 267 } |
| 268 | 268 |
| 269 /** | 269 /** |
| 270 * When {@link HgLogCommand} is executed against file, handler passed to {@link HgLogCommand#execute(Handler)} may optionally | 270 * When {@link HgLogCommand} is executed against file, handler passed to {@link HgLogCommand#execute(HgChangesetHandler)} may optionally |
| 271 * implement this interface to get information about file renames. Method {@link #copy(FileRevision, FileRevision)} would | 271 * implement this interface to get information about file renames. Method {@link #copy(FileRevision, FileRevision)} would |
| 272 * get invoked prior any changeset of the original file (if file history being followed) is reported via {@link #next(HgChangeset)}. | 272 * get invoked prior any changeset of the original file (if file history being followed) is reported via {@link #next(HgChangeset)}. |
| 273 * | 273 * |
| 274 * For {@link HgLogCommand#file(Path, boolean)} with renamed file path and follow argument set to false, | 274 * For {@link HgLogCommand#file(Path, boolean)} with renamed file path and follow argument set to false, |
| 275 * {@link #copy(FileRevision, FileRevision)} would be invoked for the first copy/rename in the history of the file, but not | 275 * {@link #copy(FileRevision, FileRevision)} would be invoked for the first copy/rename in the history of the file, but not |
| 276 * followed by any changesets. | 276 * followed by any changesets. |
| 277 * | 277 * |
| 278 * @author Artem Tikhomirov | 278 * @author Artem Tikhomirov |
| 279 * @author TMate Software Ltd. | 279 * @author TMate Software Ltd. |
| 280 */ | 280 */ |
| 281 public interface FileHistoryHandler extends Handler { | 281 public interface FileHistoryHandler extends HgChangesetHandler { |
| 282 // XXX perhaps, should distinguish copy from rename? And what about merged revisions and following them? | 282 // XXX perhaps, should distinguish copy from rename? And what about merged revisions and following them? |
| 283 void copy(FileRevision from, FileRevision to); | 283 void copy(FileRevision from, FileRevision to); |
| 284 } | 284 } |
| 285 | 285 |
| 286 public static class CollectHandler implements Handler { | 286 public static class CollectHandler implements HgChangesetHandler { |
| 287 private final List<HgChangeset> result = new LinkedList<HgChangeset>(); | 287 private final List<HgChangeset> result = new LinkedList<HgChangeset>(); |
| 288 | 288 |
| 289 public List<HgChangeset> getChanges() { | 289 public List<HgChangeset> getChanges() { |
| 290 return Collections.unmodifiableList(result); | 290 return Collections.unmodifiableList(result); |
| 291 } | 291 } |
