use of org.openrdf.query.TupleQueryResult in project gocd by gocd.
the class SesameGraph method selectFirst.
public BoundVariables selectFirst(String sparqlSelect) {
BoundVariables boundVariables;
TupleQueryResult tupleQueryResult = getTupleQueryResult(sparqlSelect);
try {
if (!tupleQueryResult.hasNext()) {
return null;
}
boundVariables = new SesameBoundVariables(tupleQueryResult.getBindingNames(), tupleQueryResult.next());
if (tupleQueryResult.hasNext()) {
tupleQueryResult.close();
throw new MoreThanOneResultFoundException(sparqlSelect);
}
} catch (QueryEvaluationException e) {
throw new ShineRuntimeException("Could not parse query: <<" + sparqlSelect + ">>", e);
}
return boundVariables;
}
use of org.openrdf.query.TupleQueryResult in project gocd by gocd.
the class SesameGraph method renderTupleQuery.
private void renderTupleQuery(Query query, TupleQueryResultWriter writer) throws QueryEvaluationException, TupleQueryResultHandlerException {
TupleQueryResult tupleQueryResult = ((TupleQuery) query).evaluate();
writer.startQueryResult(tupleQueryResult.getBindingNames());
while (tupleQueryResult.hasNext()) {
writer.handleSolution(tupleQueryResult.next());
}
writer.endQueryResult();
}
use of org.openrdf.query.TupleQueryResult in project backstage by zepheira.
the class DomLensNode method generateSubcontentAttributes.
protected void generateSubcontentAttributes(Value value, Scriptable result, Database database, SailRepositoryConnection connection) {
ScriptableArrayBuilder arrayBuilder = new ScriptableArrayBuilder();
for (SubcontentAttribute a : _subcontentAttributes) {
DefaultScriptableObject o = new DefaultScriptableObject();
o.put("name", o, a.name);
StringBuffer sb = new StringBuffer();
for (Fragment f : a.fragments) {
if (f instanceof StringFragment) {
sb.append(((StringFragment) f).text);
} else {
try {
boolean first = true;
ExpressionQueryResult eqr = ((ExpressionFragment) f).expression.computeOutputOnValue(value, database, connection);
if (eqr != null) {
TupleQueryResult queryResult = eqr.tupleQuery.evaluate();
try {
while (queryResult.hasNext()) {
BindingSet bindingSet = queryResult.next();
Value value2 = bindingSet.getValue(eqr.resultVar.getName());
if (first) {
first = false;
} else {
sb.append(";");
}
sb.append(renderInnerValueToText(value2, database, connection));
}
} finally {
queryResult.close();
}
} else {
sb.append(renderInnerValueToText(value, database, connection));
}
} catch (Exception e) {
_logger.error("", e);
}
}
}
o.put("value", o, sb.toString());
arrayBuilder.add(o);
}
result.put("subcontentAttributes", result, arrayBuilder.toArray());
}
use of org.openrdf.query.TupleQueryResult in project backstage by zepheira.
the class DomLensNode method generateContentWithInnerTemplates.
protected void generateContentWithInnerTemplates(Value value, Scriptable result, Database database, SailRepositoryConnection connection) {
ScriptableArrayBuilder arrayBuilder = new ScriptableArrayBuilder();
try {
ExpressionQueryResult eqr = _contentExpression.computeOutputOnValue(value, database, connection);
if (eqr != null) {
TupleQueryResult queryResult = eqr.tupleQuery.evaluate();
try {
while (queryResult.hasNext()) {
BindingSet bindingSet = queryResult.next();
Value value2 = bindingSet.getValue(eqr.resultVar.getName());
arrayBuilder.add(generateInnerContentWithInnerTemplates(value2, database, connection));
}
} finally {
queryResult.close();
}
} else {
arrayBuilder.add(generateInnerContentWithInnerTemplates(value, database, connection));
}
} catch (Exception e) {
_logger.error("", e);
}
result.put("content", result, arrayBuilder.toArray());
}
use of org.openrdf.query.TupleQueryResult in project stanbol by apache.
the class SesameYard method findReferences.
@Override
public QueryResultList<String> findReferences(FieldQuery parsedQuery) throws YardException, IllegalArgumentException {
if (parsedQuery == null) {
throw new IllegalArgumentException("The parsed query MUST NOT be NULL!");
}
final SparqlFieldQuery query = SparqlFieldQueryFactory.getSparqlFieldQuery(parsedQuery);
RepositoryConnection con = null;
TupleQueryResult results = null;
try {
con = repository.getConnection();
con.begin();
//execute the query
int limit = QueryUtils.getLimit(query, getConfig().getDefaultQueryResultNumber(), getConfig().getMaxQueryResultNumber());
results = executeSparqlFieldQuery(con, query, limit, false);
//parse the results
List<String> ids = limit > 0 ? new ArrayList<String>(limit) : new ArrayList<String>();
while (results.hasNext()) {
BindingSet result = results.next();
Value value = result.getValue(query.getRootVariableName());
if (value instanceof Resource) {
ids.add(value.stringValue());
}
}
con.commit();
return new QueryResultListImpl<String>(query, ids, String.class);
} catch (RepositoryException e) {
throw new YardException("Unable to execute findReferences query", e);
} catch (QueryEvaluationException e) {
throw new YardException("Unable to execute findReferences query", e);
} finally {
if (results != null) {
//close the result if present
try {
results.close();
} catch (QueryEvaluationException ignore) {
/* ignore */
}
}
if (con != null) {
try {
con.close();
} catch (RepositoryException ignore) {
/* ignore */
}
}
}
}
Aggregations