Mercurial > hg4j
diff 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 |
line wrap: on
line diff
--- a/src/org/tmatesoft/hg/core/HgRepoFacade.java Tue Feb 22 15:49:26 2011 +0100 +++ b/src/org/tmatesoft/hg/core/HgRepoFacade.java Wed Feb 23 22:36:28 2011 +0100 @@ -23,6 +23,14 @@ /** * Starting point for the library. + * <p>Sample use: + * <pre> + * HgRepoFacade f = new HgRepoFacade(); + * f.initFrom(System.getenv("whatever.repo.location")); + * HgStatusCommand statusCmd = f.createStatusCommand(); + * HgStatusCommand.Handler handler = ...; + * statusCmd.execute(handler); + * </pre> * * @author Artem Tikhomirov * @author TMate Software Ltd. @@ -33,6 +41,11 @@ public HgRepoFacade() { } + /** + * @param hgRepo + * @return true on successful initialization + * @throws IllegalArgumentException when argument is null + */ public boolean init(HgRepository hgRepo) { if (hgRepo == null) { throw new IllegalArgumentException(); @@ -41,13 +54,29 @@ return !repo.isInvalid(); } - public boolean init() throws Exception /*FIXME RepoInitException*/ { + /** + * Tries to find repository starting from the current working directory. + * @return <code>true</code> if found valid repository + * @throws HgException in case of errors during repository initialization + */ + public boolean init() throws HgException { repo = new HgLookup().detectFromWorkingDir(); return repo != null && !repo.isInvalid(); } - public boolean initFrom(File repoLocation) throws Exception { - repo = new HgLookup().detect(repoLocation.getCanonicalPath()); + /** + * Looks up Mercurial repository starting from specified location and up to filesystem root. + * + * @param repoLocation path to any folder within structure of a Mercurial repository. + * @return <code>true</code> if found valid repository + * @throws HgException if there are errors accessing specified location + * @throws IllegalArgumentException if argument is <code>null</code> + */ + public boolean initFrom(File repoLocation) throws HgException { + if (repoLocation == null) { + throw new IllegalArgumentException(); + } + repo = new HgLookup().detect(repoLocation); return repo != null && !repo.isInvalid(); }