public void read(String filename) throws IOException, GraphParseException,
ElementNotFoundException {
FileSource input = FileSourceFactory.sourceFor(filename);
if (input != null) {
input.addSink(this);
read(input, filename);
input.removeSink(this);
} else {
throw new IOException("No source reader for " + filename);
}