package org.aksw.sparqlify.batch; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Collections; import java.util.Map; import org.apache.jena.graph.Node; import org.apache.jena.sparql.core.Quad; import org.apache.jena.sparql.core.QuadPattern; import org.apache.jena.sparql.engine.binding.Binding; import org.apache.jena.sparql.modify.TemplateLib; import org.springframework.jdbc.core.RowMapper; public class RowMapperSparqlify implements RowMapper<QuadPattern> { private RowMapper<Binding> rowMapper; private QuadPattern quadPattern; public RowMapperSparqlify(RowMapper<Binding> rowMapper, QuadPattern quadPattern) { this.rowMapper = rowMapper; this.quadPattern = quadPattern; } //public @Override public QuadPattern mapRow(ResultSet rs, int rowNumber) throws SQLException { Binding binding = rowMapper.mapRow(rs, rowNumber); QuadPattern result = map(quadPattern, binding); return result; } public static QuadPattern map(QuadPattern quadPattern, Binding binding) { Map<Node, Node> bNodeMap = Collections.emptyMap(); QuadPattern result = new QuadPattern(); for(Quad quad : quadPattern.getList()) { Quad tmp = TemplateLib.subst(quad, binding, bNodeMap); result.add(tmp); } return result; } }