All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.aksw.jena_sparql_api.stmt.SPARQLResultSinkQuads Maven / Gradle / Ivy

package org.aksw.jena_sparql_api.stmt;

import java.util.function.Consumer;

import org.apache.jena.atlas.lib.Sink;
import org.apache.jena.query.ResultSet;
import org.apache.jena.sparql.core.Quad;

public class SPARQLResultSinkQuads
    implements SPARQLResultSink {

    //protected Consumer consumer;
    protected Sink sink;
    protected SPARQLResultSink fallback;

    public SPARQLResultSinkQuads(Consumer sink) {
        this(sink, null);
    }

    public SPARQLResultSinkQuads(Consumer sink, SPARQLResultSink fallback) {
        this(new Sink() {
            @Override public void send(Quad item) { sink.accept(item);}
            @Override public void close() { }
            @Override public void flush() { }
        }, fallback);
    }

//	public SPARQLResultSinkQuads(Sink sink, SPARQLResultSink fallback) {
//		this(sink, fallback, null);
//	}

    public SPARQLResultSinkQuads(Sink sink) {
        this(sink, null);
    }

    public SPARQLResultSinkQuads(Sink sink, SPARQLResultSink fallback) {
        super();
        this.sink = sink;
        this.fallback = fallback != null ? fallback : new SPARQLResultSinkPrint(System.err);
    }

    @Override
    public void onQuad(Quad value) {
        sink.send(value);
    }

    @Override
    public void onResultSet(ResultSet rs) {
        fallback.onResultSet(rs);
//		String str = ResultSetFormatter.asText(rs);
//		System.err.println(str);
    }

    @Override
    public void onJson(com.google.gson.JsonElement value) {
        fallback.onJson(value);
//		String json = gson.toJson(value);
//		System.err.println(json);
    }

    @Override
    public void close() throws Exception {
        sink.close();
    }

    @Override
    public void flush() {
        sink.flush();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy