/*
* Copyright (c) 2008, the JUNG Project and the Regents of the University
* of California
* All rights reserved.
*
* This software is open-source under the BSD license; see either
* "license.txt" or
* http://jung.sourceforge.net/license.txt for a description.
*/
package edu.uci.ics.jung.io.graphml;
import edu.uci.ics.jung.io.GraphIOException;
import javax.xml.stream.XMLStreamException;
/**
* Converts an exception to the a GraphIOException. Runtime exceptions
* are checked for the cause. If the cause is an XMLStreamException, it is
* converted to a GraphIOException. Otherwise, the RuntimeException is
* rethrown.
*
* @author Nathan Mittler - nathan.mittler@gmail.com
*/
public class ExceptionConverter {
/**
* Converts an exception to the a GraphIOException. Runtime exceptions
* are checked for the cause. If the cause is an XMLStreamException, it is
* converted to a GraphReaderException. Otherwise, the RuntimeException is
* rethrown.
*
* @param e the exception to be converted
* @throws GraphIOException the converted exception
*/
static public void convert(Exception e) throws GraphIOException {
if (e instanceof GraphIOException) {
throw (GraphIOException) e;
}
if (e instanceof RuntimeException) {
// If the cause was an XMLStreamException, throw a GraphReaderException
if (e.getCause() instanceof XMLStreamException) {
throw new GraphIOException(e.getCause());
}
throw (RuntimeException) e;
}
throw new GraphIOException(e);
}
}