/*
* WBI Indicator Explorer
*
* Copyright 2015 Sebastian Nogara <snogaraleal@gmail.com>
*
* This file is part of WBI.
*
* 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 rpc.shared.data;
/**
* Exception during serialization or deserialization of a
* {@code Serializable} object.
*/
@SuppressWarnings("serial")
public class SerializerException extends Exception {
/**
* Kind of serialization error.
*/
public static enum Error {
NOT_SERIALIZABLE,
NOT_DESERIALIZABLE
}
/**
* Initialize {@code SerializerException}.
*
* @param error Kind of {@link SerializerException.Error}.
*/
public SerializerException(Error error) {
super(getMessage(error));
}
/**
* Initialize {@code SerializerException}.
*
* @param error Kind of {@link SerializerException.Error}.
* @param caught Wrapped {@code Throwable}.
*/
public SerializerException(Error error, Throwable caught) {
super(getMessage(error) + " (" + caught.toString() + ")");
}
/**
* Get message describing the kind of error.
*
* @param error Kind of error.
* @return Error description.
*/
public static String getMessage(Error error) {
switch (error) {
case NOT_SERIALIZABLE:
return "Object not serializable";
case NOT_DESERIALIZABLE:
return "Object not deserializable";
default:
return "Serializer exception";
}
}
}