Mercurial > hg4j
comparison src/org/tmatesoft/hg/util/CancelSupport.java @ 312:f9f3e9b67ccc
Facilitate cancellation and progress reporting in changelog and manifest iterations
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Tue, 27 Sep 2011 05:29:12 +0200 |
| parents | 41a778e3fd31 |
| children | 91d75e1bac9f |
comparison
equal
deleted
inserted
replaced
| 311:b9592e21176a | 312:f9f3e9b67ccc |
|---|---|
| 41 * | 41 * |
| 42 * @param target any object (or <code>null</code>) that might have cancel support. For <code>null</code>, returns an instance than never cancels. | 42 * @param target any object (or <code>null</code>) that might have cancel support. For <code>null</code>, returns an instance than never cancels. |
| 43 * @return target if it's capable checking cancellation status or no-op implementation that never cancels. | 43 * @return target if it's capable checking cancellation status or no-op implementation that never cancels. |
| 44 */ | 44 */ |
| 45 public static CancelSupport get(Object target) { | 45 public static CancelSupport get(Object target) { |
| 46 CancelSupport cs = get(target, null); | |
| 47 if (cs != null) { | |
| 48 return cs; | |
| 49 } | |
| 50 return new CancelSupport() { | |
| 51 public void checkCancelled() { | |
| 52 } | |
| 53 }; | |
| 54 } | |
| 55 | |
| 56 public static CancelSupport get(Object target, CancelSupport defaultValue) { | |
| 46 if (target instanceof CancelSupport) { | 57 if (target instanceof CancelSupport) { |
| 47 return (CancelSupport) target; | 58 return (CancelSupport) target; |
| 48 } | 59 } |
| 49 if (target instanceof Adaptable) { | 60 if (target instanceof Adaptable) { |
| 50 CancelSupport cs = ((Adaptable) target).getAdapter(CancelSupport.class); | 61 CancelSupport cs = ((Adaptable) target).getAdapter(CancelSupport.class); |
| 51 if (cs != null) { | 62 if (cs != null) { |
| 52 return cs; | 63 return cs; |
| 53 } | 64 } |
| 54 } | 65 } |
| 55 return new CancelSupport() { | 66 return defaultValue; |
| 56 public void checkCancelled() { | |
| 57 } | |
| 58 }; | |
| 59 } | 67 } |
| 60 } | 68 } |
| 61 | 69 |
| 62 interface Target<T> { | 70 interface Target<T> { |
| 63 T set(CancelSupport cs); | 71 T set(CancelSupport cs); |
