/*
* Copyright (c) 2009 Mysema Ltd.
* All rights reserved.
*
*/
package com.mysema.rdfbean.sesame;
import java.util.Collection;
import java.util.Set;
import java.util.TreeSet;
import org.openrdf.model.Statement;
import org.openrdf.rio.RDFFormat;
import org.openrdf.rio.RDFHandlerException;
import org.openrdf.rio.RDFWriter;
import org.openrdf.rio.RioSetting;
import org.openrdf.rio.WriterConfig;
import org.openrdf.rio.helpers.RDFHandlerWrapper;
import com.mysema.commons.lang.Assert;
/**
* @author tiwe
*/
public class RDFWriterAdapter extends RDFHandlerWrapper implements RDFWriter {
private final Set<Statement> statements = new TreeSet<Statement>(new StatementComparator());
private final RDFWriter writer;
public RDFWriterAdapter(RDFWriter writer) {
super(writer);
this.writer = Assert.notNull(writer, "writer");
}
@Override
public void handleStatement(Statement stmt) throws RDFHandlerException {
statements.add(stmt);
}
@Override
public RDFFormat getRDFFormat() {
return writer.getRDFFormat();
}
@Override
public void endRDF() throws RDFHandlerException {
for (Statement stmt : statements) {
writer.handleStatement(stmt);
}
statements.clear();
writer.endRDF();
}
@Override
public void setWriterConfig(WriterConfig config) {
writer.setWriterConfig(config);
}
@Override
public WriterConfig getWriterConfig() {
return writer.getWriterConfig();
}
@Override
public Collection<RioSetting<?>> getSupportedSettings() {
return writer.getSupportedSettings();
}
}