Mercurial > hg4j
comparison src/org/tmatesoft/hg/core/HgFileRevision.java @ 427:31a89587eb04
FIXMEs: consistent names, throws for commands and their handlers. Use of checked exceptions in hi-level api
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Thu, 29 Mar 2012 17:14:35 +0200 |
| parents | 9c9c442b5f2e |
| children | 12f668401613 |
comparison
equal
deleted
inserted
replaced
| 426:063b0663495a | 427:31a89587eb04 |
|---|---|
| 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 org.tmatesoft.hg.repo.HgDataFile; | 19 import org.tmatesoft.hg.repo.HgDataFile; |
| 20 import org.tmatesoft.hg.repo.HgInvalidControlFileException; | |
| 21 import org.tmatesoft.hg.repo.HgInvalidRevisionException; | |
| 22 import org.tmatesoft.hg.repo.HgManifest; | 20 import org.tmatesoft.hg.repo.HgManifest; |
| 23 import org.tmatesoft.hg.repo.HgManifest.Flags; | 21 import org.tmatesoft.hg.repo.HgManifest.Flags; |
| 24 import org.tmatesoft.hg.repo.HgRepository; | 22 import org.tmatesoft.hg.repo.HgRepository; |
| 23 import org.tmatesoft.hg.repo.HgRuntimeException; | |
| 25 import org.tmatesoft.hg.util.ByteChannel; | 24 import org.tmatesoft.hg.util.ByteChannel; |
| 26 import org.tmatesoft.hg.util.CancelledException; | 25 import org.tmatesoft.hg.util.CancelledException; |
| 27 import org.tmatesoft.hg.util.Pair; | 26 import org.tmatesoft.hg.util.Pair; |
| 28 import org.tmatesoft.hg.util.Path; | 27 import org.tmatesoft.hg.util.Path; |
| 29 | 28 |
| 76 return revision; | 75 return revision; |
| 77 } | 76 } |
| 78 | 77 |
| 79 /** | 78 /** |
| 80 * Executable or symbolic link, or <code>null</code> if regular file | 79 * Executable or symbolic link, or <code>null</code> if regular file |
| 81 * @throws HgInvalidRevisionException if supplied nodeid doesn't identify any revision from this revlog | 80 * @throws HgRuntimeException subclass thereof to indicate issues with the library. <em>Runtime exception</em> |
| 82 * @throws HgInvalidControlFileException if access to revlog index/data entry failed | |
| 83 */ | 81 */ |
| 84 public HgManifest.Flags getFileFlags() throws HgInvalidControlFileException, HgInvalidRevisionException { | 82 public HgManifest.Flags getFileFlags() throws HgRuntimeException { |
| 85 if (flags == null) { | 83 if (flags == null) { |
| 86 HgDataFile df = repo.getFileNode(path); | 84 HgDataFile df = repo.getFileNode(path); |
| 87 int revIdx = df.getRevisionIndex(revision); | 85 int revIdx = df.getRevisionIndex(revision); |
| 88 flags = df.getFlags(revIdx); | 86 flags = df.getFlags(revIdx); |
| 89 } | 87 } |
| 110 * Access revisions this file revision originates from. | 108 * Access revisions this file revision originates from. |
| 111 * Note, these revisions are records in the file history, not that of the whole repository (aka changeset revisions) | 109 * Note, these revisions are records in the file history, not that of the whole repository (aka changeset revisions) |
| 112 * In most cases, only one parent revision would be present, only for merge revisions one can expect both. | 110 * In most cases, only one parent revision would be present, only for merge revisions one can expect both. |
| 113 * | 111 * |
| 114 * @return parent revisions of this file revision, with {@link Nodeid#NULL} for missing values. | 112 * @return parent revisions of this file revision, with {@link Nodeid#NULL} for missing values. |
| 113 * @throws HgRuntimeException subclass thereof to indicate issues with the library. <em>Runtime exception</em> | |
| 115 */ | 114 */ |
| 116 public Pair<Nodeid, Nodeid> getParents() throws HgInvalidControlFileException { | 115 public Pair<Nodeid, Nodeid> getParents() throws HgRuntimeException { |
| 117 if (parents == null) { | 116 if (parents == null) { |
| 118 HgDataFile fn = repo.getFileNode(path); | 117 HgDataFile fn = repo.getFileNode(path); |
| 119 int revisionIndex = fn.getRevisionIndex(revision); | 118 int revisionIndex = fn.getRevisionIndex(revision); |
| 120 int[] pr = new int[2]; | 119 int[] pr = new int[2]; |
| 121 byte[] p1 = new byte[20], p2 = new byte[20]; | 120 byte[] p1 = new byte[20], p2 = new byte[20]; |
