/*
* Copyright (C) 2015 by Array Systems Computing Inc. http://www.array.ca
*
* 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; either version 3 of the License, or (at your option)
* any later version.
* 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.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, see http://www.gnu.org/licenses/
*/
package org.esa.s1tbx.io.binary;
/**
* Description of IllegalCeosFormatException
* <p/>
* <p>This class is public for the benefit of the implementation of another (internal) class and its API may
* change in future releases of the software.</p>
*
* @author Marco Peters
*/
public class IllegalBinaryFormatException extends Exception {
private final long _streamPos;
/**
* Constructs a new exception with the specified detail message. The
* cause is not initialized, and may subsequently be initialized by
* a call to {@link #initCause}.
*
* @param message the detail message. The detail message is saved for
* later retrieval by the {@link #getMessage()} method.
* @param streamPos
*/
public IllegalBinaryFormatException(final String message, final long streamPos) {
super(message);
_streamPos = streamPos;
}
/**
* Constructs a new exception with the specified detail message and
* cause. <p>Note that the detail message associated with
* <code>cause</code> is <i>not</i> automatically incorporated in
* this exception's detail message.
*
* @param message the detail message (which is saved for later retrieval
* by the {@link #getMessage()} method).
* @param streamPos
* @param cause the cause (which is saved for later retrieval by the
* {@link #getCause()} method). (A <tt>null</tt> value is
* permitted, and indicates that the cause is nonexistent or
* unknown.)
*/
public IllegalBinaryFormatException(final String message, final long streamPos, final Throwable cause) {
super(message, cause);
_streamPos = streamPos;
}
public long getStreamPos() {
return _streamPos;
}
/**
* Returns the detail message string of this throwable.
*
* @return the detail message string of this <tt>Throwable</tt> instance
* (which may be <tt>null</tt>).
*/
@Override
public String getMessage() {
return super.getMessage() + "; at stream position=" + _streamPos;
}
}