Mercurial > jhg
diff src/org/tmatesoft/hg/repo/HgInvalidRevisionException.java @ 423:9c9c442b5f2e
Major refactoring of exception handling. Low-level API uses RuntimeExceptions, while checked are left for higher level
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Fri, 23 Mar 2012 22:51:18 +0100 |
parents | src/org/tmatesoft/hg/core/HgInvalidRevisionException.java@866fc3b597a0 |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/tmatesoft/hg/repo/HgInvalidRevisionException.java Fri Mar 23 22:51:18 2012 +0100 @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2011-2012 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@hg4j.com + */ +package org.tmatesoft.hg.repo; + +import org.tmatesoft.hg.core.Nodeid; + +/** + * Use of revision or revision local index that is not valid for a given revlog. + * + * @author Artem Tikhomirov + * @author TMate Software Ltd. + */ +@SuppressWarnings("serial") +public class HgInvalidRevisionException extends HgRuntimeException { + + /** + * + * This exception is not expected to be initialized with another exception, although those who need to, + * may still use {@link #initCause(Throwable)} + * + * @param message optional description of the issue + * @param revision invalid revision, may be <code>null</code> if revisionIndex is used + * @param revisionIndex invalid revision index, may be <code>null</code> if not known and revision is supplied + */ + public HgInvalidRevisionException(String message, Nodeid revision, Integer revisionIndex) { + super(message, null); + assert revision != null || revisionIndex != null; + if (revision != null) { + setRevision(revision); + } + if (revisionIndex != null) { + setRevisionIndex(revisionIndex); + } + } + + public HgInvalidRevisionException(Nodeid revision) { + this(null, revision, null); + } + + public HgInvalidRevisionException(int revisionIndex) { + this(null, null, revisionIndex); + } + + public HgInvalidRevisionException setRevisionIndex(int revisionIndex, int rangeLeft, int rangeRight) { + details.setRevisionIndexBoundary(revisionIndex, rangeLeft, rangeRight); + return this; + } +}