use of org.apache.jena.sparql.sse.Item in project jena by apache.
the class CmdARQ_SSE method exec.
@Override
protected final void exec() {
Item item = modItem.getItem();
exec(item);
}
use of org.apache.jena.sparql.sse.Item in project jena by apache.
the class Stats method write.
private static void write(OutputStream output, Map<Node, Integer> predicateStats, Map<Node, Integer> typeStats, long statsTotal) {
Item item = format(predicateStats, typeStats, statsTotal);
ItemWriter.write(output, item);
}
use of org.apache.jena.sparql.sse.Item in project jena by apache.
the class StatsMatcher method init.
private void init(Item stats) {
if (!stats.isTagged(STATS))
throw new ARQException("Not a tagged '" + STATS + "'");
// Skip tag
ItemList list = stats.getList().cdr();
if (list.car().isTagged(META)) {
// Process the meta tag.
Item elt1 = list.car();
// Move list on
list = list.cdr();
// Get count.
Item x = Item.find(elt1.getList(), COUNT);
if (x != null)
count = x.getList().get(1).asInteger();
}
while (!list.isEmpty()) {
Item elt = list.car();
list = list.cdr();
onePattern(elt);
}
}
use of org.apache.jena.sparql.sse.Item in project jena by apache.
the class BuilderResultSet method build.
public static ResultSet build(Item item) {
BuilderLib.checkTagged(item, Tags.tagResultSet, "Not a (resultset ...)");
ItemList list = item.getList();
List<Var> vars = BuilderNode.buildVarList(list.get(1));
// skip tag, skip vars.
int start = 2;
List<Binding> bindings = new ArrayList<>();
for (int i = start; i < list.size(); i++) {
Item itemRow = list.get(i);
Binding b = BuilderBinding.build(itemRow);
bindings.add(b);
}
QueryIterator qIter = new QueryIterPlainWrapper(bindings.listIterator());
return new ResultSetStream(Var.varNames(vars), null, qIter);
}
use of org.apache.jena.sparql.sse.Item in project jena by apache.
the class BuilderTable method build.
public static Table build(Item item) {
BuilderLib.checkTagged(item, Tags.tagTable, "Not a (table ...)");
ItemList list = item.getList();
int start = 1;
if (list.size() == 1)
// Null table;
return TableFactory.createEmpty();
// Maybe vars.
List<Var> vars = null;
if (list.size() > 1) {
Item item0 = list.get(1);
if (item0.isTagged(Tags.tagVars)) {
vars = BuilderNode.buildVarList(item0);
list = list.cdr();
}
}
if (list.size() == 2 && list.get(1).isSymbol()) {
// Short hand for well known tables
String symbol = list.get(1).getSymbol();
if (symbol.equals("unit"))
return TableFactory.createUnit();
if (symbol.equals("empty"))
return TableFactory.createEmpty();
BuilderLib.broken(list, "Don't recognized table symbol");
}
Table table = TableFactory.create(vars);
int count = 0;
Binding lastBinding = null;
for (int i = start; i < list.size(); i++) {
Item itemRow = list.get(i);
Binding b = BuilderBinding.build(itemRow);
table.addBinding(b);
lastBinding = b;
count++;
}
if (table.size() == 1) {
// One row, no bindings.
if (lastBinding.isEmpty())
return TableFactory.createUnit();
}
return table;
}
Aggregations