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 2025/06/22 07:32:07 UTC
(jena) 03/04: GH-3144: Refinements for URI calls to functions
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 c1b5161378c9fe042354d17fefb44231f0f0a409
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Thu May 22 08:24:01 2025 +0100
GH-3144: Refinements for URI calls to functions
---
.../org/apache/jena/sparql/core/BasicPattern.java | 2 +-
.../jena/sparql/expr/E_AdjustToTimezone.java | 4 +++
.../java/org/apache/jena/sparql/expr/E_BNode.java | 17 +++++----
.../java/org/apache/jena/sparql/expr/E_IRI.java | 21 +++++-------
.../java/org/apache/jena/sparql/expr/E_IRI2.java | 7 +++-
.../org/apache/jena/sparql/expr/E_LogicalAnd.java | 4 +--
.../org/apache/jena/sparql/expr/E_LogicalOr.java | 4 +--
.../java/org/apache/jena/sparql/expr/E_Regex.java | 4 +++
.../org/apache/jena/sparql/expr/E_StrReplace.java | 14 +++++---
.../java/org/apache/jena/sparql/expr/E_URI.java | 12 +++----
.../java/org/apache/jena/sparql/expr/E_URI2.java | 14 ++++----
.../org/apache/jena/sparql/expr/E_Version.java | 19 +++++-----
.../java/org/apache/jena/sparql/expr/Expr.java | 2 +-
.../org/apache/jena/sparql/expr/ExprFunction.java | 8 ++---
.../java/org/apache/jena/sparql/expr/ExprNode.java | 6 +++-
.../{E_Version.java => nodevalue/ARQFuncOp.java} | 40 +++++++++++-----------
.../jena/sparql/expr/nodevalue/XSDFuncOp.java | 22 +++++++++---
.../sparql/expr/urifunctions/SPARQLDispatch.java | 37 ++++++++++++++++----
.../sparql/expr/urifunctions/SPARQLFuncOp.java | 33 ++++++++++--------
.../apache/jena/sparql/function/FunctionBase.java | 2 +-
.../jena/sparql/function/library/FN_BEV.java | 2 +-
.../sparql/function/library/leviathan/md5hash.java | 6 ++--
.../function/library/leviathan/sha256hash.java | 4 +--
.../jena/sparql/sse/builders/BuilderExpr.java | 2 +-
.../apache/jena/sparql/syntax/TripleCollector.java | 2 +-
.../apache/jena/sparql/expr/TestExpressions2.java | 2 +-
.../apache/jena/sparql/expr/TestExpressions3.java | 4 +--
.../org/apache/jena/sparql/expr/TestNodeValue.java | 30 ++++++++--------
28 files changed, 192 insertions(+), 132 deletions(-)
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/BasicPattern.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/BasicPattern.java
index 04df9cbb05..5451caaa7a 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/BasicPattern.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/BasicPattern.java
@@ -48,7 +48,7 @@ public class BasicPattern implements Iterable<Triple> {
triples.addAll(other.triples) ;
}
- private BasicPattern(List<Triple> triples) {
+ public BasicPattern(List<Triple> triples) {
this.triples = triples ;
}
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_AdjustToTimezone.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_AdjustToTimezone.java
index 9505496090..abe698b719 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_AdjustToTimezone.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_AdjustToTimezone.java
@@ -25,6 +25,10 @@ import org.apache.jena.sparql.sse.Tags;
/** Do any of FN_Adjust(date/time)ToTimezone */
public class E_AdjustToTimezone extends ExprFunctionN {
+ public E_AdjustToTimezone(Expr expr1){
+ this(expr1, null);
+ }
+
public E_AdjustToTimezone(Expr expr1, Expr expr2){
super(Tags.tagAdjust, expr1, expr2);
}
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_BNode.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_BNode.java
index 5562bca8c0..9a871cbe0d 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_BNode.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_BNode.java
@@ -36,17 +36,17 @@ public class E_BNode implements Unstable
private static final Symbol keyMap = Symbol.create("arq:internal:bNodeMappings");
public static Expr create() {
- return new E_BNode0();
+ return new BNode0();
}
public static Expr create(Expr expr) {
- return new E_BNode1(expr);
+ return new BNode1(expr);
}
// --- The zero argument case.
- private static class E_BNode0 extends ExprFunction0 implements Unstable {
+ public static class BNode0 extends ExprFunction0 implements Unstable {
- protected E_BNode0() {
+ protected BNode0() {
super(symbol);
}
@@ -57,13 +57,13 @@ public class E_BNode implements Unstable
@Override
public Expr copy() {
- return new E_BNode0();
+ return new BNode0();
}
}
// --- The one argument case.
- private static class E_BNode1 extends ExprFunction1 implements Unstable {
- protected E_BNode1(Expr expr) {
+ public static class BNode1 extends ExprFunction1 implements Unstable {
+ protected BNode1(Expr expr) {
super(expr, symbol);
}
@@ -102,8 +102,7 @@ public class E_BNode implements Unstable
@Override
public Expr copy(Expr expr) {
- return new E_BNode1(expr);
+ return new BNode1(expr);
}
}
-
}
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_IRI.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_IRI.java
index 375103cb74..ff39aab87a 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_IRI.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_IRI.java
@@ -34,8 +34,8 @@ import org.apache.jena.sparql.sse.Tags;
* The function URI(expr) is the same, but under a different name as a
* subclass.
* <p>
- * As an ARQ extension , there is also {@code IRI(base, relative)} form which is E_IRI2.
- * The relative URI (string or IRI) is resolved against the result of the "base" expression.
+ * See also E_IRI2, an ARQ extension. That allows a base and a relative IRI.
+ * The relative URI (string or IRI) is resolved against the result of the value of the base expression.
* which in turn is resolved as per the one-argument form.
*/
public class E_IRI extends ExprFunction1 {
@@ -62,7 +62,7 @@ public class E_IRI extends ExprFunction1 {
this.relExpr = relExpr;
}
- // Evaluation of a "one argument with access to the env.
+ // Evaluation of a "one argument" with access to the env.
@Override
protected NodeValue evalSpecial(Binding binding, FunctionEnv env) {
// IRI(relative)
@@ -72,15 +72,18 @@ public class E_IRI extends ExprFunction1 {
return resolve(nvRel, baseIRI, env);
}
+ @Override
+ public NodeValue eval(NodeValue v, FunctionEnv env) {
+ // Shouldn't be called. Legacy only.
+ return resolve(v, parserBase, env);
+ }
+
/*package*/ static NodeValue resolve(NodeValue relative, String baseIRI, FunctionEnv env) {
if ( baseIRI == null ) {
if ( env.getContext() != null ) {
Query query = (Query)env.getContext().get(ARQConstants.sysCurrentQuery);
if ( query != null )
baseIRI = query.getBaseURI();
- // If still null, NodeFunctions.iri will use the system base.
-// if ( baseIRI == null )
-// baseIRI = IRIs.getBaseStr();
}
}
if ( NodeFunctions.isIRI(relative.asNode()) ) {
@@ -90,12 +93,6 @@ public class E_IRI extends ExprFunction1 {
return NodeFunctions.iri(relative, baseIRI);
}
- @Override
- public NodeValue eval(NodeValue v, FunctionEnv env) {
- // Shouldn't be called. Legacy only. Does not support baseExpr!=null
- return resolve(v, parserBase, env);
- }
-
@Override
public Expr copy(Expr expr) {
return new E_IRI(parserBase, expr);
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_IRI2.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_IRI2.java
index d189952f0d..aa6f138a38 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_IRI2.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_IRI2.java
@@ -43,14 +43,19 @@ public class E_IRI2 extends ExprFunction2 {
private static final String sseFunctionName = Tags.tagIri2;
// The base in force when the function was created.
- // Kept separate from baseExpr so we can see whether it was the one argument or two argument form.
protected final String parserBase;
// ARQ extension: "IRI(base, relative)"
protected final Expr baseExpr;
protected final Expr relExpr;
+ public E_IRI2(Expr baseExpr, Expr relExpr) {
+ this(baseExpr, null, relExpr);
+ }
+
public E_IRI2(Expr baseExpr, String parserBaseURI, Expr relExpr) {
+ // BaseStr is the base in force at the time this expression was created.
+ // This may be null.
this(baseExpr, parserBaseURI, relExpr, sparqlPrintName, sseFunctionName);
}
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_LogicalAnd.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_LogicalAnd.java
index 8a8ff4f9b0..51cabe4ef8 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_LogicalAnd.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_LogicalAnd.java
@@ -42,7 +42,7 @@ public class E_LogicalAnd extends ExprFunction2
try {
NodeValue x = getArg1().eval(binding, env) ;
- if ( ! XSDFuncOp.booleanEffectiveValue(x) )
+ if ( ! XSDFuncOp.effectiveBooleanValue(x) )
return NodeValue.FALSE ;
} catch (ExprEvalException eee)
{
@@ -55,7 +55,7 @@ public class E_LogicalAnd extends ExprFunction2
try {
NodeValue y = getArg2().eval(binding, env) ;
- if ( ! XSDFuncOp.booleanEffectiveValue(y) )
+ if ( ! XSDFuncOp.effectiveBooleanValue(y) )
return NodeValue.FALSE ;
// RHS is true but was there an error earlier?
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_LogicalOr.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_LogicalOr.java
index 1c09a6698b..f81637863b 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_LogicalOr.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_LogicalOr.java
@@ -57,7 +57,7 @@ public class E_LogicalOr extends ExprFunction2
try {
NodeValue x = getArg1().eval(binding, env) ;
- if ( XSDFuncOp.booleanEffectiveValue(x) )
+ if ( XSDFuncOp.effectiveBooleanValue(x) )
return NodeValue.TRUE ;
} catch (ExprEvalException eee)
{
@@ -70,7 +70,7 @@ public class E_LogicalOr extends ExprFunction2
try {
NodeValue y = getArg2().eval(binding, env) ;
- if ( XSDFuncOp.booleanEffectiveValue(y) )
+ if ( XSDFuncOp.effectiveBooleanValue(y) )
return NodeValue.TRUE ;
// RHS is false but was there an error earlier?
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Regex.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Regex.java
index eaa58e299a..e924344668 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Regex.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Regex.java
@@ -33,6 +33,10 @@ public class E_Regex extends ExprFunctionN
private static final String name = Tags.tagRegex;
private RegexEngine regexEngine = null;
+ public E_Regex(Expr expr, Expr pattern) {
+ this(expr, pattern, null);
+ }
+
public E_Regex(Expr expr, Expr pattern, Expr flags) {
super(name, expr, pattern, flags);
init(pattern, flags);
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_StrReplace.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_StrReplace.java
index 3fafec212e..faadfccca2 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_StrReplace.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_StrReplace.java
@@ -25,19 +25,25 @@ import org.apache.jena.sparql.expr.nodevalue.XSDFuncOp ;
import org.apache.jena.sparql.sse.Tags ;
public class E_StrReplace extends ExprFunctionN {
- private static final String symbol = Tags.tagReplace ;
- private Pattern pattern = null ;
+ private static final String symbol = Tags.tagReplace;
+ private final Pattern pattern;
+
+ public E_StrReplace(Expr expr1, Expr expr2, Expr expr3) {
+ this(expr1, expr2, expr3, null);
+ }
public E_StrReplace(Expr expr1, Expr expr2, Expr expr3, Expr expr4) {
- super(symbol, expr1, expr2, expr3, expr4) ;
+ super(symbol, expr1, expr2, expr3, expr4);
+ Pattern pattern0 = null;
if ( isString(expr2) && (expr4 == null || isString(expr4)) ) {
String flags = null;
if ( expr4 != null && expr4.isConstant() && expr4.getConstant().isString() )
flags = expr4.getConstant().getString();
String patternStr = expr2.getConstant().getString();
- pattern = RegexEngine.makePattern("REPLACE", patternStr, flags);
+ pattern0 = RegexEngine.makePattern("REPLACE", patternStr, flags);
}
+ pattern = pattern0;
}
private static boolean isString(Expr expr) {
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_URI.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_URI.java
index 162b001584..84072c649b 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_URI.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_URI.java
@@ -33,19 +33,19 @@ public class E_URI extends E_IRI {
this(null, relExpr);
}
- public E_URI(String baseStr, Expr relExpr) {
- super(baseStr, relExpr, sparqlPrintName, sseFunctionName);
+ public E_URI(String parserBaseURI, Expr relExpr) {
+ super(parserBaseURI, relExpr, sparqlPrintName, sseFunctionName);
}
- @Override
- public String getFunctionPrintName(SerializationContext cxt)
- { return sparqlPrintName ; }
-
@Override
public Expr copy(Expr expr) {
return new E_URI(parserBase, expr);
}
+ @Override
+ public String getFunctionPrintName(SerializationContext cxt)
+ { return sparqlPrintName ; }
+
@Override
public int hashCode() {
return super.hashCode()+1;
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_URI2.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_URI2.java
index 32698e2f95..b05aeb4998 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_URI2.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_URI2.java
@@ -29,23 +29,25 @@ public class E_URI2 extends E_IRI2 {
private static final String sparqlPrintName = "URI";
private static final String sseFunctionName = Tags.tagUri2;
- public E_URI2(String baseURI, Expr relExpr) {
- this(null, baseURI, relExpr);
+ public E_URI2(Expr baseExpr, Expr relExpr) {
+ this(baseExpr, null, relExpr);
}
public E_URI2(Expr baseExpr, String baseStr, Expr relExpr) {
+ // BaseStr is the base in force at the time this expression was created.
+ // This may be null.
super(baseExpr, baseStr, relExpr, sparqlPrintName, sseFunctionName);
}
- @Override
- public String getFunctionPrintName(SerializationContext cxt)
- { return sparqlPrintName ; }
-
@Override
public Expr copy(Expr expr1, Expr expr2) {
return new E_URI2(expr1, parserBase, expr2);
}
+ @Override
+ public String getFunctionPrintName(SerializationContext cxt)
+ { return sparqlPrintName ; }
+
@Override
public int hashCode() {
return super.hashCode()+1;
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Version.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Version.java
index 0653096a5e..ec44bf4330 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Version.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Version.java
@@ -18,28 +18,25 @@
package org.apache.jena.sparql.expr;
-import org.apache.jena.query.ARQ ;
+import org.apache.jena.sparql.expr.nodevalue.ARQFuncOp;
import org.apache.jena.sparql.function.FunctionEnv ;
import org.apache.jena.sparql.sse.Tags ;
public class E_Version extends ExprFunction0
{
static private String fName = Tags.tagVersion ;
-
- public E_Version()
- {
- super(fName) ;
+
+ public E_Version() {
+ super(fName);
}
@Override
- public Expr copy()
- {
- return new E_Version() ;
+ public Expr copy() {
+ return new E_Version();
}
@Override
- public NodeValue eval(FunctionEnv env)
- {
- return NodeValue.makeString(ARQ.NAME+" "+ARQ.VERSION) ;
+ public NodeValue eval(FunctionEnv env) {
+ return ARQFuncOp.version();
}
}
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java
index 96df7d76e3..d360897c07 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/Expr.java
@@ -38,7 +38,7 @@ public interface Expr
public static final int CMP_UNEQUAL = -9 ;
public static final int CMP_INDETERMINATE = DatatypeConstants.INDETERMINATE ;
- /** Test whether a Constraint is satisfied, given a set of bindings
+ /** Test whether a constraint is satisfied, given a set of bindings.
* Includes error propagation and Effective Boolean Value rules.
*
* @param binding The bindings
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction.java
index 9135fcdbb8..8d6624f97b 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprFunction.java
@@ -96,15 +96,15 @@ public abstract class ExprFunction extends ExprNode
}
/**
- * Name used for output in SPARQL format needing functional form (no specific keyword).
+ * Name used for output in SPARQL format needing functional syntax: name(arg1, arg2, ...)
* e.g. regexp(), custom functions, ...
*/
public String getFunctionPrintName(SerializationContext cxt)
{ return funcSymbol.getSymbol(); }
/**
- * Name used in a functional form (i.e. SPARQL algebra).
- * getOpName() is used in preference as a short, symbol name.
+ * Name used in the SPARQL algebra.
+ * See also {@link #getOpName} for an operator form.
*/
public String getFunctionName(SerializationContext cxt)
{ return funcSymbol.getSymbol(); }
@@ -116,7 +116,7 @@ public abstract class ExprFunction extends ExprNode
/** URI for this function, whether custom or specification defined URI (these are keywords in the language) */
public String getFunctionIRI() { return null; }
- /** Get the symbol name (+, ! etc) for this function -- maybe null for none */
+ /** Get the operator symbol name (+, ! etc) for this function -- maybe null for none */
public String getOpName()
{ return opSign; }
}
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java
index 03249a637b..85e8190aae 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/ExprNode.java
@@ -40,7 +40,7 @@ public abstract class ExprNode implements Expr
public boolean isSatisfied(Binding binding, FunctionEnv funcEnv) {
try {
NodeValue v = eval(binding, funcEnv);
- boolean b = XSDFuncOp.booleanEffectiveValue(v);
+ boolean b = XSDFuncOp.effectiveBooleanValue(v);
return b;
}
catch (ExprEvalException ex) {
@@ -48,7 +48,11 @@ public abstract class ExprNode implements Expr
}
}
+ /** @deprecated Unnecessary - to be removed */
+ @Deprecated(forRemoval = true)
public boolean isExpr() { return true; }
+ /** @deprecated Unnecessary - to be removed */
+ @Deprecated(forRemoval = true)
public final Expr getExpr() { return this; }
// --- interface Constraint
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Version.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/ARQFuncOp.java
similarity index 51%
copy from jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Version.java
copy to jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/ARQFuncOp.java
index 0653096a5e..1c8b27e1b3 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Version.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/ARQFuncOp.java
@@ -16,30 +16,30 @@
* limitations under the License.
*/
-package org.apache.jena.sparql.expr;
+package org.apache.jena.sparql.expr.nodevalue;
-import org.apache.jena.query.ARQ ;
-import org.apache.jena.sparql.function.FunctionEnv ;
-import org.apache.jena.sparql.sse.Tags ;
+import java.util.Optional;
-public class E_Version extends ExprFunction0
-{
- static private String fName = Tags.tagVersion ;
-
- public E_Version()
- {
- super(fName) ;
- }
+import org.apache.jena.atlas.lib.Version;
+import org.apache.jena.query.ARQ;
+import org.apache.jena.sparql.expr.NodeValue;
+
+/** Functions specific to ARQ */
+public class ARQFuncOp {
- @Override
- public Expr copy()
- {
- return new E_Version() ;
+ /** The return version information as a human-readable string.*/
+ public static NodeValue version() {
+ String verStr = versionString();
+ return NodeValue.makeString(verStr);
}
- @Override
- public NodeValue eval(FunctionEnv env)
- {
- return NodeValue.makeString(ARQ.NAME+" "+ARQ.VERSION) ;
+ private static String versionString() {
+ if ( true )
+ return ARQ.NAME+" "+ARQ.VERSION;
+ Optional<String> version = Version.versionForClass(ARQ.class);
+ if ( version.isPresent() )
+ return String.format("Apache Jena version %s", version.get());
+
+ return "Apache Jena";
}
}
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/XSDFuncOp.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/XSDFuncOp.java
index 4a17dbc04c..7bf9ffd8fb 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/XSDFuncOp.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/XSDFuncOp.java
@@ -295,19 +295,33 @@ public class XSDFuncOp
/** {@literal F&O} fn:not */
public static NodeValue not(NodeValue nv) {
- boolean b = XSDFuncOp.booleanEffectiveValue(nv);
+ boolean b = XSDFuncOp.effectiveBooleanValue(nv);
return NodeValue.booleanReturn(!b);
}
- /** {@literal F&O} fn:boolean */
+ /** @deprecated Renamed as {@link effectiveBooleanValueAsNodeValue}. */
+ @Deprecated(forRemoval = true)
public static NodeValue booleanEffectiveValueAsNodeValue(NodeValue nv) {
+ return effectiveBooleanValueAsNodeValue(nv);
+ }
+
+ /** {@literal F&O} fn:boolean */
+ public static NodeValue effectiveBooleanValueAsNodeValue(NodeValue nv) {
if ( nv.isBoolean() ) // "Optimization" (saves on object churn)
return nv;
- return NodeValue.booleanReturn(booleanEffectiveValue(nv));
+ return NodeValue.booleanReturn(effectiveBooleanValue(nv));
}
- /** {@literal F&O} fn:boolean */
+ /** @deprecated Renamed as {@link effectiveBooleanValue}. */
+ @Deprecated(forRemoval = true)
public static boolean booleanEffectiveValue(NodeValue nv) {
+ return effectiveBooleanValue(nv);
+ }
+
+ /** {@literal F&O} fn:boolean */
+ public static boolean effectiveBooleanValue(NodeValue nv) {
+ Objects.requireNonNull(nv, "NodeValue is null in call to effectiveBooleanValue");
+
// Apply the "boolean effective value" rules
// boolean: value of the boolean (strictly, if derived from xsd:boolean)
// plain literal: lexical form length(string) > 0
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/urifunctions/SPARQLDispatch.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/urifunctions/SPARQLDispatch.java
index 0f40f6287a..c301490275 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/urifunctions/SPARQLDispatch.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/urifunctions/SPARQLDispatch.java
@@ -123,6 +123,18 @@ public class SPARQLDispatch {
}
// Switch on arity
+ static void register(Map<String, Call> map, String uri, Function3 function3, Function4 function4) {
+ Call call = args->{
+ if ( args.length == 3 )
+ return function3.exec(args[0], args[1], args[2]);
+ if ( args.length == 4 )
+ return function4.exec(args[0], args[1], args[2], args[3]);
+ throw exception("%s: Expected three or four arguments. Got %d", uri, args.length);
+ };
+ registerCall(map, uri, call);
+ }
+
+ // Arity N
static void register(Map<String, Call> map, String uri, FunctionN function) {
Call call = args->{
return function.exec(args);
@@ -150,6 +162,10 @@ public class SPARQLDispatch {
static Map<String, Call> buildDispatchMap() {
Map<String, Call> map = new HashMap<>();
+
+ // Move out/rename to "FunctionDispatch"
+ // Add ARQ specials.
+
register(map, "plus", SPARQLFuncOp::sparql_plus );
register(map, "add", SPARQLFuncOp::sparql_plus ); // Alt name.
register(map, "subtract", SPARQLFuncOp::sparql_subtract );
@@ -161,7 +177,7 @@ public class SPARQLDispatch {
register(map, "not-equals", SPARQLFuncOp::sparql_not_equals );
register(map, "greaterThan", SPARQLFuncOp::sparql_greaterThan );
register(map, "greaterThanOrEqual", SPARQLFuncOp::sparql_greaterThanOrEqual );
- register(map, "lessThan", SPARQLFuncOp::sparql_lessThat );
+ register(map, "lessThan", SPARQLFuncOp::sparql_lessThan );
register(map, "lessThanOrEqual", SPARQLFuncOp::sparql_lessThanOrEqual );
register(map, "and", SPARQLFuncOp::sparql_function_and );
@@ -184,9 +200,13 @@ public class SPARQLDispatch {
register(map, "floor", SPARQLFuncOp::sparql_floor);
register(map, "haslang", SPARQLFuncOp::sparql_haslang);
register(map, "haslangdir", SPARQLFuncOp::sparql_haslangdir);
+
// Arity 1/2
- register(map, "iri", x->SPARQLFuncOp.sparql_iri(x), (x,b)->SPARQLFuncOp.sparql_iri(x,b));
- register(map, "uri", SPARQLFuncOp::sparql_uri);
+ //register(map, "iri", x->SPARQLFuncOp.sparql_iri(x), (x,b)->SPARQLFuncOp.arq_iri(x,b));
+ register(map, "iri", SPARQLFuncOp::sparql_iri, SPARQLFuncOp::arq_iri);
+ //register(map, "uri", x->SPARQLFuncOp.sparql_uri(x), (x,b)->SPARQLFuncOp.arq_uri(x,b));
+ register(map, "uri", SPARQLFuncOp::sparql_uri, SPARQLFuncOp::arq_uri);
+
register(map, "isBlank", SPARQLFuncOp::sparql_isBlank);
register(map, "isLiteral", SPARQLFuncOp::sparql_isLiteral);
register(map, "isNumeric", SPARQLFuncOp::sparql_isNumeric);
@@ -199,8 +219,12 @@ public class SPARQLDispatch {
register(map, "ucase", SPARQLFuncOp::sparql_ucase);
register(map, "now", SPARQLFuncOp::sparql_now);
register(map, "rand", SPARQLFuncOp::sparql_rand);
- register(map, "regex", SPARQLFuncOp::sparql_regex);
- register(map, "replace", SPARQLFuncOp::sparql_replace);
+ // Arity 2/3
+ register(map, "regex", SPARQLFuncOp::sparql_regex, SPARQLFuncOp::sparql_regex);
+
+ // Arity 3/4
+ register(map, "replace", SPARQLFuncOp::sparql_replace, SPARQLFuncOp::sparql_replace);
+
register(map, "round", SPARQLFuncOp::sparql_round);
register(map, "sameTerm", SPARQLFuncOp::sparql_sameTerm);
register(map, "sameValue", SPARQLFuncOp::sparql_sameValue);
@@ -223,6 +247,7 @@ public class SPARQLDispatch {
register(map, "md5", SPARQLFuncOp::sparql_md5);
register(map, "sha1", SPARQLFuncOp::sparql_sha1);
+ register(map, "sha224", SPARQLFuncOp::sparql_sha224);
register(map, "sha256", SPARQLFuncOp::sparql_sha256);
register(map, "sha384", SPARQLFuncOp::sparql_sha384);
register(map, "sha512", SPARQLFuncOp::sparql_sha512);
@@ -237,7 +262,7 @@ public class SPARQLDispatch {
register(map, "strlen", SPARQLFuncOp::sparql_strlen);
register(map, "strstarts", SPARQLFuncOp::sparql_strstarts);
// Arity 2/3
- register(map, "substr", (s,x)->SPARQLFuncOp.sparql_substr(s,x), (s,x,y)->SPARQLFuncOp.sparql_substr(s,x,y));
+ register(map, "substr", SPARQLFuncOp::sparql_substr, SPARQLFuncOp::sparql_substr);
register(map, "struuid", SPARQLFuncOp::sparql_struuid);
return Map.copyOf(map);
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/urifunctions/SPARQLFuncOp.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/urifunctions/SPARQLFuncOp.java
index f04157ed8e..411473218c 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/urifunctions/SPARQLFuncOp.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/urifunctions/SPARQLFuncOp.java
@@ -143,7 +143,7 @@ public class SPARQLFuncOp {
return NodeValue.booleanReturn(r == Expr.CMP_GREATER);
}
- public static NodeValue sparql_lessThat(NodeValue nv1, NodeValue nv2) {
+ public static NodeValue sparql_lessThan(NodeValue nv1, NodeValue nv2) {
int r = NodeValue.compare(nv1, nv2);
return NodeValue.booleanReturn(r == Expr.CMP_LESS);
}
@@ -158,22 +158,22 @@ public class SPARQLFuncOp {
return NodeValue.booleanReturn(r == Expr.CMP_LESS || r == Expr.CMP_EQUAL);
}
- // and,or,not as functions (arguments have been evaluated)
+ // and, or, not as functions (arguments have been evaluated)
public static NodeValue sparql_function_and(NodeValue nv1, NodeValue nv2) {
- boolean arg1 = XSDFuncOp.booleanEffectiveValue(nv1);
- boolean arg2 = XSDFuncOp.booleanEffectiveValue(nv2);
+ boolean arg1 = XSDFuncOp.effectiveBooleanValue(nv1);
+ boolean arg2 = XSDFuncOp.effectiveBooleanValue(nv2);
return NodeValue.booleanReturn(arg1 && arg2);
}
public static NodeValue sparql_function_or(NodeValue nv1, NodeValue nv2) {
- boolean arg1 = XSDFuncOp.booleanEffectiveValue(nv1);
- boolean arg2 = XSDFuncOp.booleanEffectiveValue(nv2);
+ boolean arg1 = XSDFuncOp.effectiveBooleanValue(nv1);
+ boolean arg2 = XSDFuncOp.effectiveBooleanValue(nv2);
return NodeValue.booleanReturn(arg1 || arg2);
}
public static NodeValue sparql_function_not(NodeValue nv) {
- boolean arg = XSDFuncOp.booleanEffectiveValue(nv);
+ boolean arg = XSDFuncOp.effectiveBooleanValue(nv);
return NodeValue.booleanReturn(!arg);
}
@@ -226,11 +226,12 @@ public class SPARQLFuncOp {
// Term functions : NodeFunctions
public static NodeValue sparql_iri(NodeValue nv) { return NodeFunctions.iri(nv, null); }
- // Extension
- public static NodeValue sparql_iri(NodeValue nv, NodeValue nvBase) { return NodeFunctions.iri(nv, nvBase.getString()); }
-
public static NodeValue sparql_uri(NodeValue nv) { return sparql_iri(nv); }
+ // Extension
+ public static NodeValue arq_iri(NodeValue nv, NodeValue nvBase) { return NodeFunctions.iri(nv, nvBase.getString()); }
+ public static NodeValue arq_uri(NodeValue nv, NodeValue nvBase) { return NodeFunctions.iri(nv, nvBase.getString()); }
+
// Only BNODE(), not BNODE(str)
public static NodeValue sparql_bnode() { return null; }
@@ -256,10 +257,7 @@ public class SPARQLFuncOp {
public static NodeValue sparql_contains(NodeValue nv1, NodeValue nv2) { return XSDFuncOp.strContains(nv1, nv2); }
public static NodeValue sparql_strbefore(NodeValue nv1, NodeValue nv2) { return XSDFuncOp.strBefore(nv1, nv2); }
public static NodeValue sparql_strafter(NodeValue nv1, NodeValue nv2) { return XSDFuncOp.strAfter(nv1, nv2); }
-
- public static NodeValue sparql_concat(NodeValue...args) {
- return XSDFuncOp.strConcat(List.of(args));
- }
+ public static NodeValue sparql_concat(NodeValue...args) { return XSDFuncOp.strConcat(List.of(args)); }
public static NodeValue sparql_langMatches(NodeValue nv1, NodeValue nv2) { return NodeFunctions.langMatches(nv1, nv2); }
@@ -270,10 +268,11 @@ public class SPARQLFuncOp {
return regexEngineCache.get(cacheKey, (key)->E_Regex.makeRegexEngine(key.pattern, key.flags));
}
+ public static NodeValue sparql_regex(NodeValue string, NodeValue pattern) { return sparql_regex(string, pattern, null); }
public static NodeValue sparql_regex(NodeValue string, NodeValue pattern, NodeValue flags) {
// Cache - this means regexes are compiled once.
String patternStr = pattern.getString();
- String flagsStr = flags.getString();
+ String flagsStr = (flags == null) ? null : flags.getString();
RegexEngine regexEngine = getRegexEngine(patternStr, flagsStr);
String str = string.getString();
boolean b = regexEngine.match(str);
@@ -283,6 +282,9 @@ public class SPARQLFuncOp {
public static NodeValue sparql_replace(NodeValue nvStr, NodeValue nvPattern, NodeValue nvReplacement)
{ return XSDFuncOp.strReplace(nvStr, nvPattern, nvReplacement); }
+ public static NodeValue sparql_replace(NodeValue nvStr, NodeValue nvPattern, NodeValue nvReplacement, NodeValue envFlags)
+ { return XSDFuncOp.strReplace(nvStr, nvPattern, nvReplacement, envFlags); }
+
public static NodeValue sparql_encode(NodeValue nv) { return XSDFuncOp.strEncodeForURI(nv); }
public static NodeValue sparql_abs(NodeValue nv) { return XSDFuncOp.abs(nv); }
public static NodeValue sparql_round(NodeValue nv) { return XSDFuncOp.round(nv); }
@@ -316,6 +318,7 @@ public class SPARQLFuncOp {
public static NodeValue sparql_md5(NodeValue nv) { return NodeValueDigest.calculateDigest(nv, "MD-5"); }
public static NodeValue sparql_sha1(NodeValue nv) { return NodeValueDigest.calculateDigest(nv, "SHA-1"); }
+ public static NodeValue sparql_sha224(NodeValue nv) { return NodeValueDigest.calculateDigest(nv, "SHA-224"); }
public static NodeValue sparql_sha256(NodeValue nv) { return NodeValueDigest.calculateDigest(nv, "SHA-256"); }
public static NodeValue sparql_sha384(NodeValue nv) { return NodeValueDigest.calculateDigest(nv, "SHA-384"); }
public static NodeValue sparql_sha512(NodeValue nv) { return NodeValueDigest.calculateDigest(nv, "SHA-512"); }
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/function/FunctionBase.java b/jena-arq/src/main/java/org/apache/jena/sparql/function/FunctionBase.java
index 3268c0f44b..50c145b5b1 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/function/FunctionBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/function/FunctionBase.java
@@ -66,5 +66,5 @@ public abstract class FunctionBase implements Function {
/** Function call to a list of evaluated argument values */
public abstract NodeValue exec(List<NodeValue> args) ;
- public abstract void checkBuild(String uri, ExprList args) ;
+ public abstract void checkBuild(String uri, ExprList args);
}
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_BEV.java b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_BEV.java
index e454595dca..3e84afc90f 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_BEV.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/FN_BEV.java
@@ -29,6 +29,6 @@ public class FN_BEV extends FunctionBase1
@Override
public NodeValue exec(NodeValue x)
{
- return XSDFuncOp.booleanEffectiveValueAsNodeValue(x) ;
+ return XSDFuncOp.effectiveBooleanValueAsNodeValue(x) ;
}
}
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/leviathan/md5hash.java b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/leviathan/md5hash.java
index a8f6f7919b..3cab49be6e 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/leviathan/md5hash.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/leviathan/md5hash.java
@@ -24,9 +24,9 @@ import org.apache.jena.sparql.expr.NodeValue ;
import org.apache.jena.sparql.function.FunctionBase1 ;
public class md5hash extends FunctionBase1 {
-
- private ExprDigest digest = new E_MD5(NodeValue.makeBoolean(true).getExpr());
-
+
+ private ExprDigest digest = new E_MD5(NodeValue.makeBoolean(true));
+
@Override
public NodeValue exec(NodeValue v) {
return digest.eval(v);
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/leviathan/sha256hash.java b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/leviathan/sha256hash.java
index e3224371a4..65b518d8c4 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/leviathan/sha256hash.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/leviathan/sha256hash.java
@@ -25,8 +25,8 @@ import org.apache.jena.sparql.function.FunctionBase1 ;
public class sha256hash extends FunctionBase1 {
- private ExprDigest digest = new E_SHA256(NodeValue.makeBoolean(true).getExpr());
-
+ private ExprDigest digest = new E_SHA256(NodeValue.makeBoolean(true));
+
@Override
public NodeValue exec(NodeValue v) {
return digest.eval(v);
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderExpr.java b/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderExpr.java
index 2e22f1c0f8..189044b597 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderExpr.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/sse/builders/BuilderExpr.java
@@ -796,7 +796,7 @@ public class BuilderExpr
if ( numArgs(list) == 2 ) {
Expr expr1 = buildExpr(list.get(1));
Expr expr2 = buildExpr(list.get(2));
- return new E_URI2(expr1, null, expr2);
+ return new E_URI2(expr1, expr2);
}
String baseStr = asString(list.get(1));
Expr expr1 = buildExpr(list.get(2));
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/syntax/TripleCollector.java b/jena-arq/src/main/java/org/apache/jena/sparql/syntax/TripleCollector.java
index 2fc60d5b89..d54931acb4 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/syntax/TripleCollector.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/syntax/TripleCollector.java
@@ -36,7 +36,7 @@ public interface TripleCollector
// triples 0..(mark-1) before using a mark. That is, use marks in
// LIFO (stack) order.
- public default int mark() { throw new InternalErrorException("Mark no tsupported"); }
+ public default int mark() { throw new InternalErrorException("Mark not supported"); }
public default void addTriple(int index, Triple t) { addTriple(t); }
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions2.java b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions2.java
index 60e096cf0b..f884ab937e 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions2.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions2.java
@@ -245,7 +245,7 @@ public class TestExpressions2
/*package*/ static void eval(String string, boolean result) {
Expr expr = ExprUtils.parse(string) ;
NodeValue nv = expr.eval(null, LibTestExpr.createTest()) ;
- boolean b = XSDFuncOp.booleanEffectiveValue(nv) ;
+ boolean b = XSDFuncOp.effectiveBooleanValue(nv) ;
assertEquals(string, result, b) ;
}
}
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions3.java b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions3.java
index 324610252c..81c8a01362 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions3.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions3.java
@@ -51,7 +51,7 @@ public class TestExpressions3
Binding binding = binding(bindingStr) ;
Expr expr = ExprUtils.parse(string) ;
NodeValue nv = expr.eval(binding, LibTestExpr.createTest()) ;
- boolean b = XSDFuncOp.booleanEffectiveValue(nv) ;
+ boolean b = XSDFuncOp.effectiveBooleanValue(nv) ;
assertEquals(string, expected, b) ;
}
@@ -60,7 +60,7 @@ public class TestExpressions3
Binding binding = binding(bindingStr) ;
Expr expr = SSE.parseExpr(exprString) ;
NodeValue nv = expr.eval(binding, LibTestExpr.createTest()) ;
- boolean b = XSDFuncOp.booleanEffectiveValue(nv) ;
+ boolean b = XSDFuncOp.effectiveBooleanValue(nv) ;
assertEquals(exprString, expected, b) ;
}
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestNodeValue.java b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestNodeValue.java
index 8e1bf78ffc..24b6ff7cc7 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestNodeValue.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestNodeValue.java
@@ -493,7 +493,7 @@ public class TestNodeValue
assertTrue("Not a boolean: " + v, v.isBoolean());
// assertTrue("Not a node: "+v, v.hasNode()) ;
assertTrue("Not true: " + v, v.getBoolean());
- assertTrue("Not true: " + v, XSDFuncOp.booleanEffectiveValue(v));
+ assertTrue("Not true: " + v, XSDFuncOp.effectiveBooleanValue(v));
}
@Test
@@ -502,7 +502,7 @@ public class TestNodeValue
assertTrue("Not a boolean: " + v, v.isBoolean());
// assertTrue("Not a node: "+v, v.hasNode()) ;
assertFalse("Not false: " + v, v.getBoolean());
- assertFalse("Not false: " + v, XSDFuncOp.booleanEffectiveValue(v));
+ assertFalse("Not false: " + v, XSDFuncOp.effectiveBooleanValue(v));
}
@Test
@@ -693,21 +693,21 @@ public class TestNodeValue
public void testEBV1() {
assertTrue("Not a boolean", NodeValue.TRUE.isBoolean());
assertTrue("Not true", NodeValue.TRUE.getBoolean());
- assertTrue("Not true", XSDFuncOp.booleanEffectiveValue(NodeValue.TRUE));
+ assertTrue("Not true", XSDFuncOp.effectiveBooleanValue(NodeValue.TRUE));
}
@Test
public void testEBV2() {
assertTrue("Not a boolean", NodeValue.FALSE.isBoolean());
assertFalse("Not false", NodeValue.FALSE.getBoolean());
- assertFalse("Not false", XSDFuncOp.booleanEffectiveValue(NodeValue.FALSE));
+ assertFalse("Not false", XSDFuncOp.effectiveBooleanValue(NodeValue.FALSE));
}
@Test
public void testEBV3() {
NodeValue v = NodeValue.makeInteger(1);
assertFalse("It's a boolean: " + v, v.isBoolean());
- assertTrue("Not EBV true: " + v, XSDFuncOp.booleanEffectiveValue(v));
+ assertTrue("Not EBV true: " + v, XSDFuncOp.effectiveBooleanValue(v));
}
@Test
@@ -719,7 +719,7 @@ public class TestNodeValue
fail("getBoolean should fail");
}
catch (ExprEvalException e) {}
- assertFalse("Not EBV false: " + v, XSDFuncOp.booleanEffectiveValue(v));
+ assertFalse("Not EBV false: " + v, XSDFuncOp.effectiveBooleanValue(v));
}
@Test
@@ -732,7 +732,7 @@ public class TestNodeValue
fail("getBoolean should fail");
}
catch (ExprEvalException e) {}
- assertTrue("Not EBV true: " + v, XSDFuncOp.booleanEffectiveValue(v));
+ assertTrue("Not EBV true: " + v, XSDFuncOp.effectiveBooleanValue(v));
}
@Test
@@ -744,7 +744,7 @@ public class TestNodeValue
fail("getBoolean should fail");
}
catch (ExprEvalException e) {}
- assertFalse("Not EBV false: " + v, XSDFuncOp.booleanEffectiveValue(v));
+ assertFalse("Not EBV false: " + v, XSDFuncOp.effectiveBooleanValue(v));
}
// EBV includes plain literals which includes language tagged literals.
@@ -752,18 +752,18 @@ public class TestNodeValue
public void testEBV7() {
Node x = NodeFactory.createLiteralLang("", "en");
NodeValue v = NodeValue.makeNode(x);
- assertFalse("Not EBV false: " + v, XSDFuncOp.booleanEffectiveValue(v));
+ assertFalse("Not EBV false: " + v, XSDFuncOp.effectiveBooleanValue(v));
}
@Test
public void testEBV8() {
Node x = NodeFactory.createLiteralLang("not empty", "en");
NodeValue v = NodeValue.makeNode(x);
- assertTrue("Not EBV true: " + v, XSDFuncOp.booleanEffectiveValue(v));
+ assertTrue("Not EBV true: " + v, XSDFuncOp.effectiveBooleanValue(v));
}
static boolean ebvDouble(double d) {
- return XSDFuncOp.booleanEffectiveValue(NodeValue.makeDouble(d));
+ return XSDFuncOp.effectiveBooleanValue(NodeValue.makeDouble(d));
}
@Test
@@ -783,11 +783,11 @@ public class TestNodeValue
Node x = NodeFactory.createLiteralDT("NaN", XSDDatatype.XSDdouble);
NodeValue v = NodeValue.makeNode(x);
- assertFalse(XSDFuncOp.booleanEffectiveValue(v));
+ assertFalse(XSDFuncOp.effectiveBooleanValue(v));
}
static boolean ebvFloat(float f) {
- return XSDFuncOp.booleanEffectiveValue(NodeValue.makeFloat(f));
+ return XSDFuncOp.effectiveBooleanValue(NodeValue.makeFloat(f));
}
@Test
@@ -807,12 +807,12 @@ public class TestNodeValue
Node x = NodeFactory.createLiteralDT("NaN", XSDDatatype.XSDfloat);
NodeValue v = NodeValue.makeNode(x);
- assertFalse(XSDFuncOp.booleanEffectiveValue(v));
+ assertFalse(XSDFuncOp.effectiveBooleanValue(v));
}
private static boolean filterEBV(NodeValue nv) {
try {
- return XSDFuncOp.booleanEffectiveValue(nv);
+ return XSDFuncOp.effectiveBooleanValue(nv);
}
catch (ExprEvalException ex) {
return false;