1
2
3
4
5
6 package org.openrdf.repository.augur;
7
8 import info.aduna.iteration.CloseableIteration;
9
10 import java.util.ArrayList;
11 import java.util.Set;
12
13 import org.openrdf.model.Value;
14 import org.openrdf.query.BindingSet;
15 import org.openrdf.query.Dataset;
16 import org.openrdf.query.QueryEvaluationException;
17 import org.openrdf.query.TupleQuery;
18 import org.openrdf.query.TupleQueryResult;
19 import org.openrdf.query.TupleQueryResultHandler;
20 import org.openrdf.query.TupleQueryResultHandlerException;
21 import org.openrdf.query.impl.TupleQueryResultImpl;
22 import org.openrdf.query.QueryResultUtil;
23 import org.openrdf.repository.augur.helpers.ASolutionIterator;
24 import org.openrdf.repository.augur.model.AugurNode;
25
26
27
28
29
30
31
32 class AugurTupleQuery implements TupleQuery {
33 private AugurNode node;
34
35 private TupleQuery delegate;
36
37 private Set<String> bindingNames;
38
39 public AugurTupleQuery(AugurNode node, TupleQuery delegate,
40 Set<String> bindingNames) {
41 super();
42 this.node = node;
43 this.delegate = delegate;
44 this.bindingNames = bindingNames;
45 }
46
47 public boolean getIncludeInferred() {
48 return delegate.getIncludeInferred();
49 }
50
51 public void setIncludeInferred(boolean includeInferred) {
52 delegate.setIncludeInferred(includeInferred);
53 node.setIncludeInferred(includeInferred);
54 }
55
56 public BindingSet getBindings() {
57 return delegate.getBindings();
58 }
59
60 public void addBinding(String name, Value value) {
61 setBinding(name, value);
62 }
63
64 public void setBinding(String name, Value value) {
65 delegate.setBinding(name, value);
66 }
67
68 public void removeBinding(String name) {
69 delegate.removeBinding(name);
70 }
71
72 public void setDataset(Dataset dataset) {
73 delegate.setDataset(dataset);
74 }
75
76 public Dataset getDataset() {
77 return delegate.getDataset();
78 }
79
80 public TupleQueryResult evaluate() throws QueryEvaluationException {
81 TupleQueryResult result = delegate.evaluate();
82 CloseableIteration<BindingSet, QueryEvaluationException> iter;
83 iter = new ASolutionIterator<QueryEvaluationException>(result, node);
84 return new TupleQueryResultImpl(new ArrayList<String>(bindingNames),
85 iter);
86 }
87
88 public void evaluate(TupleQueryResultHandler handler)
89 throws QueryEvaluationException, TupleQueryResultHandlerException {
90 TupleQueryResult queryResult = evaluate();
91 QueryResultUtil.report(queryResult, handler);
92 }
93
94 @Override
95 public String toString() {
96 return delegate.toString();
97 }
98 }