Mercurial > jhg
diff src/org/tmatesoft/hg/core/StatusCommand.java @ 64:19e9e220bf68
Convenient commands constitute hi-level API. org.tmatesoft namespace, GPL2 statement
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Fri, 21 Jan 2011 05:56:43 +0100 |
parents | |
children | 0e499fed9b3d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/tmatesoft/hg/core/StatusCommand.java Fri Jan 21 05:56:43 2011 +0100 @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2011 TMate Software Ltd + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * For information on how to redistribute this software under + * the terms of a license other than GNU General Public License + * contact TMate Software at support@svnkit.com + */ +package org.tmatesoft.hg.core; + +import org.tmatesoft.hg.core.Path.Matcher; + +import com.tmate.hgkit.ll.HgRepository; + +/** + * + * @author Artem Tikhomirov + * @author TMate Software Ltd. + */ +public class StatusCommand { + private final HgRepository repo; + + private boolean needClean = false; + private boolean needIgnored = false; + private Matcher matcher; + private int startRevision; + private Integer endRevision; // need three states, set, -1 or actual rev number + private boolean visitSubRepo = true; + + public StatusCommand(HgRepository hgRepo) { + this.repo = hgRepo; + } + + public StatusCommand all() { + needClean = true; + return this; + } + + public StatusCommand clean(boolean include) { + needClean = include; + return this; + } + public StatusCommand ignored(boolean include) { + needIgnored = include; + return this; + } + + // if set, either base:revision or base:workingdir + public StatusCommand base(int revision) { + startRevision = revision; + return this; + } + + // revision without base == --change + public StatusCommand revision(int revision) { + // XXX how to clear endRevision, if needed. + // Perhaps, use of WC_REVISION or BAD_REVISION == -2 or Int.MIN_VALUE? + endRevision = new Integer(revision); + return this; + } + + public StatusCommand match(Path.Matcher pathMatcher) { + matcher = pathMatcher; + return this; + } + + public StatusCommand subrepo(boolean visit) { + visitSubRepo = visit; + throw HgRepository.notImplemented(); + } + + public void execute() { + throw HgRepository.notImplemented(); + } +}