tikhomirov@64: /* tikhomirov@64: * Copyright (c) 2011 TMate Software Ltd tikhomirov@64: * tikhomirov@64: * This program is free software; you can redistribute it and/or modify tikhomirov@64: * it under the terms of the GNU General Public License as published by tikhomirov@64: * the Free Software Foundation; version 2 of the License. tikhomirov@64: * tikhomirov@64: * This program is distributed in the hope that it will be useful, tikhomirov@64: * but WITHOUT ANY WARRANTY; without even the implied warranty of tikhomirov@64: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the tikhomirov@64: * GNU General Public License for more details. tikhomirov@64: * tikhomirov@64: * For information on how to redistribute this software under tikhomirov@64: * the terms of a license other than GNU General Public License tikhomirov@64: * contact TMate Software at support@svnkit.com tikhomirov@64: */ tikhomirov@64: package org.tmatesoft.hg.core; tikhomirov@64: tikhomirov@64: import org.tmatesoft.hg.core.Path.Matcher; tikhomirov@64: tikhomirov@64: import com.tmate.hgkit.ll.HgRepository; tikhomirov@64: tikhomirov@64: /** tikhomirov@64: * tikhomirov@64: * @author Artem Tikhomirov tikhomirov@64: * @author TMate Software Ltd. tikhomirov@64: */ tikhomirov@64: public class StatusCommand { tikhomirov@64: private final HgRepository repo; tikhomirov@64: tikhomirov@64: private boolean needClean = false; tikhomirov@64: private boolean needIgnored = false; tikhomirov@64: private Matcher matcher; tikhomirov@64: private int startRevision; tikhomirov@64: private Integer endRevision; // need three states, set, -1 or actual rev number tikhomirov@64: private boolean visitSubRepo = true; tikhomirov@64: tikhomirov@64: public StatusCommand(HgRepository hgRepo) { tikhomirov@64: this.repo = hgRepo; tikhomirov@64: } tikhomirov@64: tikhomirov@64: public StatusCommand all() { tikhomirov@64: needClean = true; tikhomirov@64: return this; tikhomirov@64: } tikhomirov@64: tikhomirov@64: public StatusCommand clean(boolean include) { tikhomirov@64: needClean = include; tikhomirov@64: return this; tikhomirov@64: } tikhomirov@64: public StatusCommand ignored(boolean include) { tikhomirov@64: needIgnored = include; tikhomirov@64: return this; tikhomirov@64: } tikhomirov@64: tikhomirov@64: // if set, either base:revision or base:workingdir tikhomirov@64: public StatusCommand base(int revision) { tikhomirov@64: startRevision = revision; tikhomirov@64: return this; tikhomirov@64: } tikhomirov@64: tikhomirov@64: // revision without base == --change tikhomirov@64: public StatusCommand revision(int revision) { tikhomirov@64: // XXX how to clear endRevision, if needed. tikhomirov@64: // Perhaps, use of WC_REVISION or BAD_REVISION == -2 or Int.MIN_VALUE? tikhomirov@64: endRevision = new Integer(revision); tikhomirov@64: return this; tikhomirov@64: } tikhomirov@64: tikhomirov@64: public StatusCommand match(Path.Matcher pathMatcher) { tikhomirov@64: matcher = pathMatcher; tikhomirov@64: return this; tikhomirov@64: } tikhomirov@64: tikhomirov@64: public StatusCommand subrepo(boolean visit) { tikhomirov@64: visitSubRepo = visit; tikhomirov@64: throw HgRepository.notImplemented(); tikhomirov@64: } tikhomirov@64: tikhomirov@64: public void execute() { tikhomirov@64: throw HgRepository.notImplemented(); tikhomirov@64: } tikhomirov@64: }