/**
* Copyright (c) 2009 - 2010 AppWork UG(haftungsbeschränkt) <e-mail@appwork.org>
*
* This file is part of org.appwork.remotecall.server
*
* This software is licensed under the Artistic License 2.0,
* see the LICENSE file or http://www.opensource.org/licenses/artistic-license-2.0.php
* for details
*/
package org.appwork.remotecall.server;
import java.io.IOException;
import org.appwork.storage.JSonStorage;
import org.appwork.storage.Storable;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
/**
* @author thomas
*/
public class ExceptionWrapper implements Storable {
private String _exception;
private String name;
private ExceptionWrapper() {
// we need this for JSON Serial.
}
public ExceptionWrapper(final Throwable e) throws IOException {
this._exception = JSonStorage.serializeToJson(e);
this.name = e.getClass().getName();
}
public Throwable deserialiseException() throws ClassNotFoundException, JsonParseException, JsonMappingException, IOException {
// tries to cast to the correct exception
final Class<?> clazz = Class.forName(this.name);
return (Throwable) JSonStorage.restoreFromString(this._exception, clazz);
}
public String getException() {
return this._exception;
}
public String getName() {
return this.name;
}
public void setException(final String _exception) {
this._exception = _exception;
}
public void setName(final String name) {
this.name = name;
}
}