package org.aksw.jena_sparql_api.mapper; import java.util.Map; import org.aksw.jena_sparql_api.utils.BindingUtils; import org.aksw.jena_sparql_api.utils.NodeTransformRenameMap; import org.apache.jena.graph.Node; import org.apache.jena.sparql.core.DatasetGraph; import org.apache.jena.sparql.core.DatasetGraphFactory; import org.apache.jena.sparql.core.Quad; import org.apache.jena.sparql.core.QuadPattern; import org.apache.jena.sparql.core.Var; import org.apache.jena.sparql.engine.binding.Binding; import org.apache.jena.sparql.graph.NodeTransformLib; public class AccDatasetGraph implements Acc<DatasetGraph> { private DatasetGraph datasetGraph; private QuadPattern quadPattern; public AccDatasetGraph(QuadPattern quadPattern) { this(DatasetGraphFactory.createMem(), quadPattern); } public AccDatasetGraph(DatasetGraph datasetGraph, QuadPattern quadPattern) { super(); this.datasetGraph = datasetGraph; this.quadPattern = quadPattern; } @Override public void accumulate(Binding binding) { Map<Var, Node> map = BindingUtils.toMap(binding); NodeTransformRenameMap transform = new NodeTransformRenameMap(map); QuadPattern inst = NodeTransformLib.transform(transform, quadPattern); for(Quad quad : inst) { datasetGraph.add(quad); } } @Override public DatasetGraph getValue() { return datasetGraph; } }