Mercurial > jhg
comparison src/org/tmatesoft/hg/core/HgRepoFacade.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 | cd3371670f0b |
comparison
equal
deleted
inserted
replaced
147:a05145db4d0c | 148:1a7a9a20e1f9 |
---|---|
21 import org.tmatesoft.hg.repo.HgRepository; | 21 import org.tmatesoft.hg.repo.HgRepository; |
22 import org.tmatesoft.hg.repo.HgLookup; | 22 import org.tmatesoft.hg.repo.HgLookup; |
23 | 23 |
24 /** | 24 /** |
25 * Starting point for the library. | 25 * Starting point for the library. |
26 * <p>Sample use: | |
27 * <pre> | |
28 * HgRepoFacade f = new HgRepoFacade(); | |
29 * f.initFrom(System.getenv("whatever.repo.location")); | |
30 * HgStatusCommand statusCmd = f.createStatusCommand(); | |
31 * HgStatusCommand.Handler handler = ...; | |
32 * statusCmd.execute(handler); | |
33 * </pre> | |
26 * | 34 * |
27 * @author Artem Tikhomirov | 35 * @author Artem Tikhomirov |
28 * @author TMate Software Ltd. | 36 * @author TMate Software Ltd. |
29 */ | 37 */ |
30 public class HgRepoFacade { | 38 public class HgRepoFacade { |
31 private HgRepository repo; | 39 private HgRepository repo; |
32 | 40 |
33 public HgRepoFacade() { | 41 public HgRepoFacade() { |
34 } | 42 } |
35 | 43 |
44 /** | |
45 * @param hgRepo | |
46 * @return true on successful initialization | |
47 * @throws IllegalArgumentException when argument is null | |
48 */ | |
36 public boolean init(HgRepository hgRepo) { | 49 public boolean init(HgRepository hgRepo) { |
37 if (hgRepo == null) { | 50 if (hgRepo == null) { |
38 throw new IllegalArgumentException(); | 51 throw new IllegalArgumentException(); |
39 } | 52 } |
40 repo = hgRepo; | 53 repo = hgRepo; |
41 return !repo.isInvalid(); | 54 return !repo.isInvalid(); |
42 } | 55 } |
43 | 56 |
44 public boolean init() throws Exception /*FIXME RepoInitException*/ { | 57 /** |
58 * Tries to find repository starting from the current working directory. | |
59 * @return <code>true</code> if found valid repository | |
60 * @throws HgException in case of errors during repository initialization | |
61 */ | |
62 public boolean init() throws HgException { | |
45 repo = new HgLookup().detectFromWorkingDir(); | 63 repo = new HgLookup().detectFromWorkingDir(); |
46 return repo != null && !repo.isInvalid(); | 64 return repo != null && !repo.isInvalid(); |
47 } | 65 } |
48 | 66 |
49 public boolean initFrom(File repoLocation) throws Exception { | 67 /** |
50 repo = new HgLookup().detect(repoLocation.getCanonicalPath()); | 68 * Looks up Mercurial repository starting from specified location and up to filesystem root. |
69 * | |
70 * @param repoLocation path to any folder within structure of a Mercurial repository. | |
71 * @return <code>true</code> if found valid repository | |
72 * @throws HgException if there are errors accessing specified location | |
73 * @throws IllegalArgumentException if argument is <code>null</code> | |
74 */ | |
75 public boolean initFrom(File repoLocation) throws HgException { | |
76 if (repoLocation == null) { | |
77 throw new IllegalArgumentException(); | |
78 } | |
79 repo = new HgLookup().detect(repoLocation); | |
51 return repo != null && !repo.isInvalid(); | 80 return repo != null && !repo.isInvalid(); |
52 } | 81 } |
53 | 82 |
54 public HgRepository getRepository() { | 83 public HgRepository getRepository() { |
55 if (repo == null) { | 84 if (repo == null) { |