You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2024/09/07 16:44:51 UTC
(jena) 02/07: Add BuilderOp for OpUnfold
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 83ad3fdf03798384472319086f000c9189bc3517
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Wed Aug 28 13:52:18 2024 +0100
Add BuilderOp 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);