This is an automated email from the ASF dual-hosted git repository.

andy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git

commit d87def8e6fc718bfbcf3160e62bd2a19a3fd57f7
Author: Andy Seaborne <[email protected]>
AuthorDate: Sun May 18 20:45:16 2025 +0100

    Remove unused expression function
---
 jena-arq/Grammar/main.jj                           |  15 ---
 .../apache/jena/sparql/expr/E_FunctionDynamic.java |  43 --------
 .../java/org/apache/jena/sparql/expr/TS_Expr.java  |   1 -
 .../jena/sparql/expr/TestFunctionDynamic.java      |  36 -------
 .../apache/jena/arq/querybuilder/ExprFactory.java  | 117 +--------------------
 .../jena/arq/querybuilder/ExprFactoryTest.java     |  10 +-
 6 files changed, 4 insertions(+), 218 deletions(-)

diff --git a/jena-arq/Grammar/main.jj b/jena-arq/Grammar/main.jj
index 41618bd846..8e1ac25c6d 100644
--- a/jena-arq/Grammar/main.jj
+++ b/jena-arq/Grammar/main.jj
@@ -2567,21 +2567,6 @@ Expr iriOrFunction() : { String iri ; Args a = null ; }
   }
 }
 
-#ifdef ARQ_CALL
-// Needs checking.
-// The case of "?var()" or just "?var"
-Expr VarOrFunction() : { Var v ; ExprList a = null ; }
-{
-  v = Var()
-  { Expr ev = new ExprVar(v) ; }
-  ( a = ExpressionList() )?
-  { if ( a == null ) return ev ;
-    return new E_FunctionDynamic(ev, a) ;
-  }
-}
-#endif
-
-
 Node RDFLiteral() : { Token t ; String lex = null ; String uri = null ; }
 {
   lex = String()
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_FunctionDynamic.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_FunctionDynamic.java
deleted file mode 100644
index a69c097280..0000000000
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_FunctionDynamic.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.sparql.expr;
-
-
-public class E_FunctionDynamic extends E_Call
-{
-    public E_FunctionDynamic(Expr function, ExprList args)
-    {
-        this(concatArgs(function, args)) ;
-    }
-    
-    public E_FunctionDynamic(ExprList args)
-    {
-        super(args) ;
-    }
-
-    private static ExprList concatArgs(Expr expr, ExprList args)
-    {
-        args = ExprList.copy(args) ;
-        args.getListRaw().add(0, expr) ;
-        return args ;
-    }
-    
-    @Override
-    public Expr copy(ExprList newArgs)       { return new 
E_FunctionDynamic(newArgs) ; }
-}
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TS_Expr.java 
b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TS_Expr.java
index 7a6e0ef9e0..10912d5787 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TS_Expr.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TS_Expr.java
@@ -50,7 +50,6 @@ import org.junit.runners.Suite.SuiteClasses;
     , TestExprTransform.class
     , TestCustomAggregates.class
     , TestStatisticsAggregates.class
-    , TestFunctionDynamic.class
     , TestNodeValueSortKey.class
 })
 
diff --git 
a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestFunctionDynamic.java 
b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestFunctionDynamic.java
deleted file mode 100644
index f80cc42e83..0000000000
--- 
a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestFunctionDynamic.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.jena.sparql.expr;
-
-import static org.junit.Assert.*;
-import org.junit.Test;
-
-public class TestFunctionDynamic {
-       
-       @Test
-       public void testConstructor_ExprList() {
-               Expr e = new E_FunctionDynamic( new ExprList() );
-               assertTrue( e instanceof E_FunctionDynamic );
-       }
-
-       @Test
-       public void testConstructor_ExprAndExprList() {
-               Expr e = new E_FunctionDynamic( Expr.NONE, new ExprList() );
-               assertTrue( e instanceof E_FunctionDynamic );
-       }
-}
diff --git 
a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/ExprFactory.java
 
b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/ExprFactory.java
index 2adb439e80..4542e8d740 100644
--- 
a/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/ExprFactory.java
+++ 
b/jena-extras/jena-querybuilder/src/main/java/org/apache/jena/arq/querybuilder/ExprFactory.java
@@ -19,89 +19,12 @@ package org.apache.jena.arq.querybuilder;
 
 import java.util.Arrays;
 import java.util.List;
+
 import org.apache.jena.arq.querybuilder.clauses.WhereClause;
 import org.apache.jena.graph.Node;
 import org.apache.jena.shared.PrefixMapping;
 import org.apache.jena.sparql.core.Var;
-import org.apache.jena.sparql.expr.E_Add;
-import org.apache.jena.sparql.expr.E_BNode;
-import org.apache.jena.sparql.expr.E_Bound;
-import org.apache.jena.sparql.expr.E_Call;
-import org.apache.jena.sparql.expr.E_Coalesce;
-import org.apache.jena.sparql.expr.E_Conditional;
-import org.apache.jena.sparql.expr.E_Datatype;
-import org.apache.jena.sparql.expr.E_DateTimeDay;
-import org.apache.jena.sparql.expr.E_DateTimeHours;
-import org.apache.jena.sparql.expr.E_DateTimeMinutes;
-import org.apache.jena.sparql.expr.E_DateTimeMonth;
-import org.apache.jena.sparql.expr.E_DateTimeSeconds;
-import org.apache.jena.sparql.expr.E_DateTimeTZ;
-import org.apache.jena.sparql.expr.E_DateTimeTimezone;
-import org.apache.jena.sparql.expr.E_DateTimeYear;
-import org.apache.jena.sparql.expr.E_Divide;
-import org.apache.jena.sparql.expr.E_Equals;
-import org.apache.jena.sparql.expr.E_Exists;
-import org.apache.jena.sparql.expr.E_Function;
-import org.apache.jena.sparql.expr.E_FunctionDynamic;
-import org.apache.jena.sparql.expr.E_GreaterThan;
-import org.apache.jena.sparql.expr.E_GreaterThanOrEqual;
-import org.apache.jena.sparql.expr.E_IRI;
-import org.apache.jena.sparql.expr.E_IsBlank;
-import org.apache.jena.sparql.expr.E_IsIRI;
-import org.apache.jena.sparql.expr.E_IsLiteral;
-import org.apache.jena.sparql.expr.E_IsNumeric;
-import org.apache.jena.sparql.expr.E_Lang;
-import org.apache.jena.sparql.expr.E_LangMatches;
-import org.apache.jena.sparql.expr.E_LessThan;
-import org.apache.jena.sparql.expr.E_LessThanOrEqual;
-import org.apache.jena.sparql.expr.E_LogicalAnd;
-import org.apache.jena.sparql.expr.E_LogicalNot;
-import org.apache.jena.sparql.expr.E_LogicalOr;
-import org.apache.jena.sparql.expr.E_MD5;
-import org.apache.jena.sparql.expr.E_Multiply;
-import org.apache.jena.sparql.expr.E_NotEquals;
-import org.apache.jena.sparql.expr.E_NotExists;
-import org.apache.jena.sparql.expr.E_NotOneOf;
-import org.apache.jena.sparql.expr.E_Now;
-import org.apache.jena.sparql.expr.E_NumAbs;
-import org.apache.jena.sparql.expr.E_NumCeiling;
-import org.apache.jena.sparql.expr.E_NumFloor;
-import org.apache.jena.sparql.expr.E_NumRound;
-import org.apache.jena.sparql.expr.E_OneOf;
-import org.apache.jena.sparql.expr.E_Random;
-import org.apache.jena.sparql.expr.E_Regex;
-import org.apache.jena.sparql.expr.E_SHA1;
-import org.apache.jena.sparql.expr.E_SHA224;
-import org.apache.jena.sparql.expr.E_SHA256;
-import org.apache.jena.sparql.expr.E_SHA384;
-import org.apache.jena.sparql.expr.E_SHA512;
-import org.apache.jena.sparql.expr.E_SameTerm;
-import org.apache.jena.sparql.expr.E_Str;
-import org.apache.jena.sparql.expr.E_StrAfter;
-import org.apache.jena.sparql.expr.E_StrBefore;
-import org.apache.jena.sparql.expr.E_StrConcat;
-import org.apache.jena.sparql.expr.E_StrContains;
-import org.apache.jena.sparql.expr.E_StrDatatype;
-import org.apache.jena.sparql.expr.E_StrEncodeForURI;
-import org.apache.jena.sparql.expr.E_StrEndsWith;
-import org.apache.jena.sparql.expr.E_StrLang;
-import org.apache.jena.sparql.expr.E_StrLength;
-import org.apache.jena.sparql.expr.E_StrLowerCase;
-import org.apache.jena.sparql.expr.E_StrReplace;
-import org.apache.jena.sparql.expr.E_StrStartsWith;
-import org.apache.jena.sparql.expr.E_StrSubstring;
-import org.apache.jena.sparql.expr.E_StrUUID;
-import org.apache.jena.sparql.expr.E_StrUpperCase;
-import org.apache.jena.sparql.expr.E_Subtract;
-import org.apache.jena.sparql.expr.E_UUID;
-import org.apache.jena.sparql.expr.E_UnaryMinus;
-import org.apache.jena.sparql.expr.E_UnaryPlus;
-import org.apache.jena.sparql.expr.E_Version;
-import org.apache.jena.sparql.expr.Expr;
-import org.apache.jena.sparql.expr.ExprList;
-import org.apache.jena.sparql.expr.ExprNone;
-import org.apache.jena.sparql.expr.ExprVar;
-import org.apache.jena.sparql.expr.NodeValue;
+import org.apache.jena.sparql.expr.*;
 
 /**
  * Create expressions.
@@ -1215,42 +1138,6 @@ public class ExprFactory {
         return E_BNode.create();
     }
 
-    /**
-     * Creates a dynamic function call.
-     *
-     * https://www.w3.org/TR/2013/REC-sparql11-query-20130321/#rFunctionCall
-     *
-     * Converts function to an Expr object via expr()
-     *
-     * @see #asExpr(Object)
-     * @see org.apache.jena.sparql.expr.E_FunctionDynamic
-     *
-     * @param function The function to execute
-     * @param args the arguments to the function.
-     * @return an E_FunctionDynamic instance.
-     */
-    public final E_FunctionDynamic call(Object function, ExprList args) {
-        return new E_FunctionDynamic(asExpr(function), args);
-    }
-
-    /**
-     * Creates a dynamic function call.
-     *
-     * https://www.w3.org/TR/2013/REC-sparql11-query-20130321/#rFunctionCall
-     *
-     * Converts function to an Expr object via expr()
-     *
-     * @see #asExpr(Object)
-     * @see org.apache.jena.sparql.expr.E_FunctionDynamic
-     *
-     * @param function The function to execute
-     * @param args the arguments to the function.
-     * @return an E_FunctionDynamic instance.
-     */
-    public final E_FunctionDynamic call(Object function, Object... args) {
-        return call(asExpr(function), asList(args));
-    }
-
     /**
      * Creates a function call as per the SPARQL 11 query definition.
      *
diff --git 
a/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/ExprFactoryTest.java
 
b/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/ExprFactoryTest.java
index db8e8a9c54..1ac0d54318 100644
--- 
a/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/ExprFactoryTest.java
+++ 
b/jena-extras/jena-querybuilder/src/test/java/org/apache/jena/arq/querybuilder/ExprFactoryTest.java
@@ -465,12 +465,6 @@ public class ExprFactoryTest {
         assertNotNull(e);
     }
 
-    @Test
-    public void callTest_dynamic() {
-        Expr e = factory.call(factory.none(), factory.list());
-        assertTrue(e instanceof E_FunctionDynamic);
-    }
-
     @Test
     public void callTest() {
         Expr e = factory.call(factory.list());
@@ -652,7 +646,7 @@ public class ExprFactoryTest {
 
     @Test
     public void asExprTest_Triplenode() {
-        Triple expected = Triple.create(NodeFactory.createURI("a"), 
+        Triple expected = Triple.create(NodeFactory.createURI("a"),
                 NodeFactory.createURI("b"), NodeFactory.createURI("c"));
         Node tripleNode = NodeFactory.createTripleTerm(expected);
         Expr e = factory.asExpr(tripleNode);
@@ -660,7 +654,7 @@ public class ExprFactoryTest {
         NodeValueNode n = (NodeValueNode) e;
         assertTrue(expected.matches(n.asNode().getTriple()));
     }
-    
+
     @Test
     public void asExprTest_URIstring() {
         Expr e = factory.asExpr("http://example.com/foo";);

Reply via email to