Mercurial > hg4j
comparison src/org/tmatesoft/hg/repo/HgStatusCollector.java @ 316:ee6b467c1a5f
Supply HGFileRevision with copy information when possible, calculate it otherwise
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Wed, 28 Sep 2011 13:09:16 +0200 |
| parents | 2ffcbf360fd5 |
| children | 678e326fd27c |
comparison
equal
deleted
inserted
replaced
| 315:8952f89be195 | 316:ee6b467c1a5f |
|---|---|
| 309 return null; | 309 return null; |
| 310 } | 310 } |
| 311 | 311 |
| 312 // XXX for r1..r2 status, only modified, added, removed (and perhaps, clean) make sense | 312 // XXX for r1..r2 status, only modified, added, removed (and perhaps, clean) make sense |
| 313 // XXX Need to specify whether copy targets are in added or not (@see Inspector#copied above) | 313 // XXX Need to specify whether copy targets are in added or not (@see Inspector#copied above) |
| 314 /** | |
| 315 * Straightforward {@link HgStatusInspector} implementation that collects all status values. | |
| 316 * | |
| 317 * <p>Naturally, {@link Record Records} originating from {@link HgStatusCollector} would report only <em>modified, added, | |
| 318 * removed</em> and <em>clean</em> values, other are available only when using {@link Record} with {@link HgWorkingCopyStatusCollector}. | |
| 319 * | |
| 320 * <p>Note, this implementation records copied files as added, thus key values in {@link #getCopied()} map are subset of paths | |
| 321 * from {@link #getAdded()}. | |
| 322 */ | |
| 314 public static class Record implements HgStatusInspector { | 323 public static class Record implements HgStatusInspector { |
| 315 private List<Path> modified, added, removed, clean, missing, unknown, ignored; | 324 private List<Path> modified, added, removed, clean, missing, unknown, ignored; |
| 316 private Map<Path, Path> copied; | 325 private Map<Path, Path> copied; |
| 317 | 326 |
| 318 private int startRev, endRev; | 327 private int startRev, endRev; |
| 360 | 369 |
| 361 public List<Path> getRemoved() { | 370 public List<Path> getRemoved() { |
| 362 return proper(removed); | 371 return proper(removed); |
| 363 } | 372 } |
| 364 | 373 |
| 374 /** | |
| 375 * Map files from {@link #getAdded()} to their original filenames, if were copied/moved. | |
| 376 */ | |
| 365 public Map<Path,Path> getCopied() { | 377 public Map<Path,Path> getCopied() { |
| 366 if (copied == null) { | 378 if (copied == null) { |
| 367 return Collections.emptyMap(); | 379 return Collections.emptyMap(); |
| 368 } | 380 } |
| 369 return Collections.unmodifiableMap(copied); | 381 return Collections.unmodifiableMap(copied); |
| 383 | 395 |
| 384 public List<Path> getIgnored() { | 396 public List<Path> getIgnored() { |
| 385 return proper(ignored); | 397 return proper(ignored); |
| 386 } | 398 } |
| 387 | 399 |
| 388 private List<Path> proper(List<Path> l) { | 400 private static List<Path> proper(List<Path> l) { |
| 389 if (l == null) { | 401 if (l == null) { |
| 390 return Collections.emptyList(); | 402 return Collections.emptyList(); |
| 391 } | 403 } |
| 392 return Collections.unmodifiableList(l); | 404 return Collections.unmodifiableList(l); |
| 393 } | 405 } |
