tikhomirov@74: /* tikhomirov@74: * Copyright (c) 2011 TMate Software Ltd tikhomirov@74: * tikhomirov@74: * This program is free software; you can redistribute it and/or modify tikhomirov@74: * it under the terms of the GNU General Public License as published by tikhomirov@74: * the Free Software Foundation; version 2 of the License. tikhomirov@74: * tikhomirov@74: * This program is distributed in the hope that it will be useful, tikhomirov@74: * but WITHOUT ANY WARRANTY; without even the implied warranty of tikhomirov@74: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the tikhomirov@74: * GNU General Public License for more details. tikhomirov@74: * tikhomirov@74: * For information on how to redistribute this software under tikhomirov@74: * the terms of a license other than GNU General Public License tikhomirov@102: * contact TMate Software at support@hg4j.com tikhomirov@74: */ tikhomirov@74: package org.tmatesoft.hg.core; tikhomirov@74: tikhomirov@74: import java.io.File; tikhomirov@74: tikhomirov@74: import org.tmatesoft.hg.repo.HgRepository; tikhomirov@95: import org.tmatesoft.hg.repo.HgLookup; tikhomirov@74: tikhomirov@74: /** tikhomirov@74: * tikhomirov@74: * @author Artem Tikhomirov tikhomirov@74: * @author TMate Software Ltd. tikhomirov@74: */ tikhomirov@74: public class RepositoryFacade { tikhomirov@74: private HgRepository repo; tikhomirov@74: tikhomirov@74: public RepositoryFacade() { tikhomirov@74: } tikhomirov@74: tikhomirov@74: public boolean init() throws Exception /*FIXME RepoInitException*/ { tikhomirov@95: repo = new HgLookup().detectFromWorkingDir(); tikhomirov@74: return repo != null && !repo.isInvalid(); tikhomirov@74: } tikhomirov@74: tikhomirov@74: public boolean initFrom(File repoLocation) throws Exception { tikhomirov@95: repo = new HgLookup().detect(repoLocation.getCanonicalPath()); tikhomirov@74: return repo != null && !repo.isInvalid(); tikhomirov@74: } tikhomirov@74: tikhomirov@74: public LogCommand createLogCommand() { tikhomirov@74: return new LogCommand(repo/*, getCommandContext()*/); tikhomirov@74: } tikhomirov@108: tikhomirov@74: public StatusCommand createStatusCommand() { tikhomirov@74: return new StatusCommand(repo/*, getCommandContext()*/); tikhomirov@74: } tikhomirov@108: tikhomirov@108: public CatCommand createCatCommand() { tikhomirov@108: return new CatCommand(repo); tikhomirov@108: } tikhomirov@108: tikhomirov@108: public RepositoryTreeWalker createManifestCommand() { tikhomirov@108: return new RepositoryTreeWalker(repo); tikhomirov@108: } tikhomirov@74: }