Mercurial > hg4j
comparison src/org/tmatesoft/hg/core/HgStatusCommand.java @ 148:1a7a9a20e1f9
Exceptions, javadoc. Initial cancel and progress support
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Wed, 23 Feb 2011 22:36:28 +0100 |
| parents | b9700740553a |
| children | 6b55f10ef54b |
comparison
equal
deleted
inserted
replaced
| 147:a05145db4d0c | 148:1a7a9a20e1f9 |
|---|---|
| 15 * contact TMate Software at support@hg4j.com | 15 * contact TMate Software at support@hg4j.com |
| 16 */ | 16 */ |
| 17 package org.tmatesoft.hg.core; | 17 package org.tmatesoft.hg.core; |
| 18 | 18 |
| 19 import static org.tmatesoft.hg.core.HgStatus.Kind.*; | 19 import static org.tmatesoft.hg.core.HgStatus.Kind.*; |
| 20 import static org.tmatesoft.hg.repo.HgInternals.wrongLocalRevision; | |
| 20 import static org.tmatesoft.hg.repo.HgRepository.*; | 21 import static org.tmatesoft.hg.repo.HgRepository.*; |
| 21 | 22 |
| 22 import java.util.ConcurrentModificationException; | 23 import java.util.ConcurrentModificationException; |
| 23 | 24 |
| 24 import org.tmatesoft.hg.internal.ChangelogHelper; | 25 import org.tmatesoft.hg.internal.ChangelogHelper; |
| 91 mediator.needIgnored = include; | 92 mediator.needIgnored = include; |
| 92 return this; | 93 return this; |
| 93 } | 94 } |
| 94 | 95 |
| 95 /** | 96 /** |
| 96 * if set, either base:revision or base:workingdir | 97 * If set, either base:revision or base:workingdir |
| 97 * to unset, pass {@link HgRepository#TIP} or {@link HgRepository#BAD_REVISION} | 98 * to unset, pass {@link HgRepository#TIP} or {@link HgRepository#BAD_REVISION} |
| 98 * @param revision | 99 * @param revision - local revision number to base status from |
| 99 * @return | 100 * @return <code>this</code> for convenience |
| 100 */ | 101 * @throws IllegalArgumentException when revision is negative or {@link HgRepository#WORKING_COPY} |
| 101 | 102 */ |
| 102 public HgStatusCommand base(int revision) { | 103 public HgStatusCommand base(int revision) { |
| 103 if (revision == WORKING_COPY) { | 104 if (revision == WORKING_COPY || wrongLocalRevision(revision)) { |
| 104 throw new IllegalArgumentException(); | 105 throw new IllegalArgumentException(String.valueOf(revision)); |
| 105 } | 106 } |
| 106 if (revision == BAD_REVISION) { | 107 if (revision == BAD_REVISION) { |
| 107 revision = TIP; | 108 revision = TIP; |
| 108 } | 109 } |
| 109 startRevision = revision; | 110 startRevision = revision; |
| 111 } | 112 } |
| 112 | 113 |
| 113 /** | 114 /** |
| 114 * Revision without base == --change | 115 * Revision without base == --change |
| 115 * Pass {@link HgRepository#WORKING_COPY} or {@link HgRepository#BAD_REVISION} to reset | 116 * Pass {@link HgRepository#WORKING_COPY} or {@link HgRepository#BAD_REVISION} to reset |
| 116 * @param revision | 117 * @param revision - non-negative local revision number, or any of {@link HgRepository#BAD_REVISION}, {@link HgRepository#WORKING_COPY} or {@link HgRepository#TIP} |
| 117 * @return | 118 * @return <code>this</code> for convenience |
| 119 * @throws IllegalArgumentException if local revision number doesn't specify legitimate revision. | |
| 118 */ | 120 */ |
| 119 public HgStatusCommand revision(int revision) { | 121 public HgStatusCommand revision(int revision) { |
| 120 if (revision == BAD_REVISION) { | 122 if (revision == BAD_REVISION) { |
| 121 revision = WORKING_COPY; | 123 revision = WORKING_COPY; |
| 122 } | 124 } |
| 123 if (revision != TIP && revision != WORKING_COPY && revision < 0) { | 125 if (wrongLocalRevision(revision)) { |
| 124 throw new IllegalArgumentException(String.valueOf(revision)); | 126 throw new IllegalArgumentException(String.valueOf(revision)); |
| 125 } | 127 } |
| 126 endRevision = revision; | 128 endRevision = revision; |
| 127 return this; | 129 return this; |
| 128 } | 130 } |
| 129 | 131 |
| 130 /** | 132 /** |
| 131 * Shorthand for {@link #base(int) cmd.base(BAD_REVISION)}{@link #change(int) .revision(revision)} | 133 * Shorthand for {@link #base(int) cmd.base(BAD_REVISION)}{@link #change(int) .revision(revision)} |
| 132 * | 134 * |
| 133 * @param revision compare given revision against its parent | 135 * @param revision compare given revision against its parent |
| 134 * @return | 136 * @return <code>this</code> for convenience |
| 135 */ | 137 */ |
| 136 public HgStatusCommand change(int revision) { | 138 public HgStatusCommand change(int revision) { |
| 137 base(BAD_REVISION); | 139 base(BAD_REVISION); |
| 138 return revision(revision); | 140 return revision(revision); |
| 139 } | 141 } |
| 140 | 142 |
| 141 // pass null to reset | 143 /** |
| 144 * Limit status operation to certain sub-tree. | |
| 145 * | |
| 146 * @param pathMatcher - matcher to use, pass <code>null/<code> to reset | |
| 147 * @return <code>this</code> for convenience | |
| 148 */ | |
| 142 public HgStatusCommand match(Path.Matcher pathMatcher) { | 149 public HgStatusCommand match(Path.Matcher pathMatcher) { |
| 143 mediator.matcher = pathMatcher; | 150 mediator.matcher = pathMatcher; |
| 144 return this; | 151 return this; |
| 145 } | 152 } |
| 146 | 153 |
