public <T> List<T> construct(String sparql, Map<String, Object> args, GraphMapper<T> mapper) {
Connection connection = dataSource.getConnection();
GraphQueryResult result = null;
try {
GraphQuery query = connection.graph(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;
}