[VIVO-1667] Language filtering for CONSTRUCT queries (#107)

* Language filtering for CONSTRUCT queries
* Use an intermediate model for filtering if the destination is not empty

Resolves: https://jira.duraspace.org/browse/VIVO-1667
This commit is contained in:
Graham Triggs 2019-03-19 14:15:56 +00:00 committed by Andrew Woods
parent 49b03cb56e
commit 12d703b4c8

View file

@ -22,6 +22,7 @@ import org.apache.jena.query.ResultSetFormatter;
import org.apache.jena.rdf.model.Literal; import org.apache.jena.rdf.model.Literal;
import org.apache.jena.rdf.model.Model; import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.ModelChangedListener; import org.apache.jena.rdf.model.ModelChangedListener;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.rdf.model.RDFNode; import org.apache.jena.rdf.model.RDFNode;
import org.apache.jena.rdf.model.Statement; import org.apache.jena.rdf.model.Statement;
import org.apache.jena.rdf.model.StmtIterator; import org.apache.jena.rdf.model.StmtIterator;
@ -90,7 +91,15 @@ public class LanguageFilteringRDFService implements RDFService {
@Override @Override
public void sparqlConstructQuery(String query, Model model) public void sparqlConstructQuery(String query, Model model)
throws RDFServiceException { throws RDFServiceException {
if (model.isEmpty()) {
s.sparqlConstructQuery(query, model); s.sparqlConstructQuery(query, model);
filterModel(model);
} else {
Model constructedModel = ModelFactory.createDefaultModel();
s.sparqlConstructQuery(query, constructedModel);
filterModel(constructedModel);
model.add(constructedModel);
}
} }
@Override @Override