This is an automated email from the ASF dual-hosted git repository. andy pushed a commit to branch gh2518-cdt in repository https://gitbox.apache.org/repos/asf/jena.git
commit 2eb321e31a8e728dad547def6879d728902835b7 Author: Andy Seaborne <[email protected]> AuthorDate: Wed Aug 28 13:52:18 2024 +0100 Add BuildOp for OpUnfold --- .../org/apache/jena/sparql/sse/builders/BuilderOp.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderOp.java b/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderOp.java index 7e36dd94f9..1be0cd2d39 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderOp.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderOp.java @@ -97,6 +97,7 @@ public class BuilderOp addBuild(Tags.tagExtend, buildExtend); addBuild(Tags.symAssign, buildAssign); addBuild(Tags.tagSlice, buildSlice); + addBuild(Tags.tagUnfold, buildUnfold); addBuild(Tags.tagTable, buildTable); addBuild(Tags.tagNull, buildNull); @@ -605,6 +606,20 @@ public class BuilderOp return new OpSlice(sub, start, length); }; + final protected Build buildUnfold = list -> { + BuilderLib.checkLength(3, list, "unfold"); + Item item1 = list.get(1); // List of three + ItemList argList = item1.getList(); + + Expr cdtItem = BuilderExpr.buildExpr(argList.get(0)); + Var eltVar = BuilderNode.buildVar(argList.get(1)); + Var idxVar = null; + if ( argList.size() == 3 ) + idxVar = BuilderNode.buildVar(argList.get(2)); + + Op subOp = build(list, 2); + return new OpUnfold(subOp,cdtItem, eltVar, idxVar); + }; final protected Build buildNull = (ItemList list) -> { BuilderLib.checkLength(1, list, Tags.tagNull);
