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");
