*/
public <T> List<T> query(String sparql, Map<String, Object> args, RowMapper<T> mapper) {
Connection connection = dataSource.getConnection();
TupleQueryResult result = null;
try {
SelectQuery query = connection.select(sparql);
if (args != null) {
for (Entry<String, Object> arg : args.entrySet()) {
query.parameter(arg.getKey(), arg.getValue());
}
}
ArrayList<T> list = new ArrayList<T>();
result = query.execute();
// return empty lists for empty queries
if (result == null) {
return list;
}