package sparql; import java.util.ArrayList; import java.util.Iterator; import javat.xml.Document; import javat.xml.Element; public class ResultSet implements Iterable<Result>{ private ArrayList<String> variables; private boolean distinct; private boolean ordered; private ArrayList<Result> results; public static ResultSet parse(Document d) throws Exception{ ResultSet r = new ResultSet(); r.variables = new ArrayList<>(); r.results = new ArrayList<>(); for(Element v : d.getRootElement().getChildren("head").get(0).getChildren("variable")){ r.variables.add(v.getAttribute("name").getValue()); } Element res = d.getRootElement().getChildren("results").get(0); r.distinct = Boolean.parseBoolean(res.getAttribute("distinct").getValue()); r.ordered = Boolean.parseBoolean(res.getAttribute("ordered").getValue()); for(Element rs : res.getChildren("result")){ r.results.add(new Result(rs)); } return r; } public ArrayList<String> getVariables() { return variables; } public boolean isDistinct() { return distinct; } public boolean isOrdered() { return ordered; } public ArrayList<Result> getResults() { return results; } public void setVariables(ArrayList<String> variables) { this.variables = variables; } public void setDistinct(boolean distinct) { this.distinct = distinct; } public void setOrdered(boolean ordered) { this.ordered = ordered; } public void setResults(ArrayList<Result> results) { this.results = results; } @Override public Iterator<Result> iterator() { return results.iterator(); } public int size(){ return results.size(); } }