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 2015/12/17 21:58:18 UTC
[1/6] jena git commit: Remove stray blank line.
Repository: jena
Updated Branches:
refs/heads/master 7248f19b5 -> 590c06a89
Remove stray blank line.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/751e49ce
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/751e49ce
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/751e49ce
Branch: refs/heads/master
Commit: 751e49ce8b1b3c98d6978b91fe395da0fc5333ec
Parents: 7248f19
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Dec 17 16:57:20 2015 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Dec 17 16:57:20 2015 +0000
----------------------------------------------------------------------
jena-core/src/main/java/org/apache/jena/rdf/model/impl/Util.java | 1 -
1 file changed, 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/751e49ce/jena-core/src/main/java/org/apache/jena/rdf/model/impl/Util.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/Util.java b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/Util.java
index d88b755..3dfae8c 100644
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/Util.java
+++ b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/Util.java
@@ -220,7 +220,6 @@ public class Util extends Object {
return false ;
return !lang.equals("") ;
}
-
/** Return true if the literal is a simple string.
* <p>RDF 1.0 => it is a plain literal, with no language tag
[6/6] jena git commit: JENA-1102; Use new lang string support.
Posted by an...@apache.org.
JENA-1102; Use new lang string support.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/590c06a8
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/590c06a8
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/590c06a8
Branch: refs/heads/master
Commit: 590c06a8937a071c7f9b01254d44c7bc2811adfa
Parents: f8f5b62
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Dec 17 18:10:49 2015 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Dec 17 18:10:49 2015 +0000
----------------------------------------------------------------------
.../jena/sparql/expr/nodevalue/NodeFunctions.java | 14 +++++++++-----
.../jena/sparql/expr/nodevalue/NodeValueLang.java | 2 +-
2 files changed, 10 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/590c06a8/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeFunctions.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeFunctions.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeFunctions.java
index 4df9aad..b0a2c4d 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeFunctions.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeFunctions.java
@@ -228,7 +228,12 @@ public class NodeFunctions {
// -------- lang
public static NodeValue lang(NodeValue nv) {
- return NodeValue.makeString(lang(nv.asNode())) ;
+ if ( nv.isLangString() )
+ return NodeValue.makeString(nv.getLang()) ;
+ if ( nv.isLiteral() )
+ return NodeValue.nvEmptyString ;
+ NodeValue.raise(new ExprTypeException("lang: Not a literal: " + nv.asQuotedString())) ;
+ return null ;
}
public static String lang(Node node) {
@@ -469,10 +474,9 @@ public class NodeFunctions {
String lex = v1.asString() ;
String lang = v2.asString() ;
- // Check?
-
- Node n = NodeFactory.createLiteral(lex, lang) ;
- return NodeValue.makeNode(n) ;
+ if ( lang.isEmpty() )
+ throw new ExprEvalException("Empty lang tag") ;
+ return NodeValue.makeLangString(lex, lang) ;
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/590c06a8/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueLang.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueLang.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueLang.java
index 157fd63..88c329d 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueLang.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueLang.java
@@ -65,7 +65,7 @@ public class NodeValueLang extends NodeValue {
@Override
protected Node makeNode()
- { return NodeFactory.createLiteral(super.getString(), lang) ; }
+ { return NodeFactory.createLiteral(string, lang) ; }
@Override
public String toString() {
[3/6] jena git commit: Clarify comment.
Posted by an...@apache.org.
Clarify comment.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/c0bb5f24
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/c0bb5f24
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/c0bb5f24
Branch: refs/heads/master
Commit: c0bb5f24ad4c977a50a057e42183e25b09c58331
Parents: 2a50b82
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Dec 17 17:41:55 2015 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Dec 17 17:41:55 2015 +0000
----------------------------------------------------------------------
.../org/apache/jena/sparql/expr/nodevalue/NodeValueString.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/c0bb5f24/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueString.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueString.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueString.java
index 0beb283..a921c43 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueString.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueString.java
@@ -26,7 +26,7 @@ import org.apache.jena.sparql.util.FmtUtils ;
public class NodeValueString extends NodeValue
{
- // A plain string, no language tag or xsd:string.
+ // A plain string, with no language tag, or an xsd:string.
private String string ;
[2/6] jena git commit: JENA-1102: EBV of "a"@en now handled.
Posted by an...@apache.org.
JENA-1102: EBV of "a"@en now handled.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/2a50b822
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/2a50b822
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/2a50b822
Branch: refs/heads/master
Commit: 2a50b822d15d9505ae5c60fa02d2fd74ff34599c
Parents: 751e49c
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Dec 17 16:58:56 2015 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Dec 17 16:58:56 2015 +0000
----------------------------------------------------------------------
.../jena/sparql/expr/nodevalue/XSDFuncOp.java | 7 ++++--
.../apache/jena/sparql/expr/TestNodeValue.java | 26 +++++++++++++++++---
2 files changed, 27 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/2a50b822/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/XSDFuncOp.java
----------------------------------------------------------------------
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 6b2ea50..d0cadee 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
@@ -218,14 +218,17 @@ public class XSDFuncOp
public static boolean booleanEffectiveValue(NodeValue nv) {
// Apply the "boolean effective value" rules
// boolean: value of the boolean (strictly, if derived from xsd:boolean)
- // string: length(string) > 0
+ // plain literal: lexical form length(string) > 0
// numeric: number != Nan && number != 0
// http://www.w3.org/TR/xquery/#dt-ebv
if ( nv.isBoolean() )
return nv.getBoolean() ;
if ( nv.isString() )
- return nv.getString().length() > 0 ;
+ return ! nv.getString().isEmpty() ;
+ if ( nv.isLiteral() && Util.isLangString(nv.asNode()) )
+ // Plain literals : no lang tag done by the test above.
+ return ! nv.getNode().getLiteralLexicalForm().isEmpty() ;
if ( nv.isInteger() )
return !nv.getInteger().equals(NodeValue.IntegerZERO) ;
if ( nv.isDecimal() )
http://git-wip-us.apache.org/repos/asf/jena/blob/2a50b822/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestNodeValue.java
----------------------------------------------------------------------
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 bb94098..465f896 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
@@ -27,6 +27,7 @@ import org.apache.jena.JenaRuntime ;
import org.apache.jena.atlas.junit.BaseTest ;
import org.apache.jena.datatypes.xsd.XSDDatatype ;
import org.apache.jena.graph.Node ;
+import org.apache.jena.graph.NodeFactory ;
import org.apache.jena.sparql.expr.ExprEvalException ;
import org.apache.jena.sparql.expr.NodeValue ;
import org.apache.jena.sparql.expr.nodevalue.XSDFuncOp ;
@@ -554,8 +555,6 @@ public class TestNodeValue extends BaseTest
{
NodeValue v = NodeValue.makeInteger(1) ;
assertFalse("It's a boolean: "+v, v.isBoolean()) ;
- //assertTrue("Not a node: "+v, v.hasNode()) ;
- try { v.getBoolean() ; fail("getBoolean should fail") ; } catch (ExprEvalException e) {}
assertTrue("Not EBV true: "+v, XSDFuncOp.booleanEffectiveValue(v)) ;
}
@@ -563,7 +562,6 @@ public class TestNodeValue extends BaseTest
{
NodeValue v = NodeValue.makeInteger(0) ;
assertFalse("It's a boolean: "+v, v.isBoolean()) ;
- //assertTrue("Not a node: "+v, v.hasNode()) ;
try { v.getBoolean() ; fail("getBoolean should fail") ; } catch (ExprEvalException e) {}
assertFalse("Not EBV false: "+v, XSDFuncOp.booleanEffectiveValue(v)) ;
}
@@ -581,11 +579,31 @@ public class TestNodeValue extends BaseTest
{
NodeValue v = NodeValue.makeString("") ;
assertFalse("It's a boolean: "+v, v.isBoolean()) ;
- //assertTrue("Not a node: "+v, v.hasNode()) ;
try { v.getBoolean() ; fail("getBoolean should fail") ; } catch (ExprEvalException e) {}
assertFalse("Not EBV false: "+v, XSDFuncOp.booleanEffectiveValue(v)) ;
}
+ // EBV includes plain literals which includes language tagged literals.
+ @Test public void testEBV7()
+ {
+ Node x = NodeFactory.createLiteral("", "en") ;
+ NodeValue v = NodeValue.makeNode(x) ;
+ assertFalse("Not EBV false: "+v, XSDFuncOp.booleanEffectiveValue(v)) ;
+ }
+
+ @Test public void testEBV8()
+ {
+ Node x = NodeFactory.createLiteral("not empty", "en") ;
+ NodeValue v = NodeValue.makeNode(x) ;
+ assertTrue("Not EBV true: "+v, XSDFuncOp.booleanEffectiveValue(v)) ;
+ }
+
+ private static boolean filterEBV(NodeValue nv) {
+ try { return XSDFuncOp.booleanEffectiveValue(nv) ; }
+ catch (ExprEvalException ex) { return false ; }
+ }
+
+
@Test public void testFloatDouble1()
{
NodeValue v1 = NodeValue.makeNodeDouble("1.5") ;
[5/6] jena git commit: Need to force to a node.
Posted by an...@apache.org.
Need to force to a node.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/f8f5b62a
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/f8f5b62a
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/f8f5b62a
Branch: refs/heads/master
Commit: f8f5b62a703bdf8be220ad6fd82f9bf8e48e43ba
Parents: 4c371b8
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Dec 17 18:10:23 2015 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Dec 17 18:10:23 2015 +0000
----------------------------------------------------------------------
.../src/main/java/org/apache/jena/sparql/expr/NodeValue.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/f8f5b62a/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
index bd07620..4267345 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
@@ -550,8 +550,8 @@ public abstract class NodeValue extends ExprNode
case VSPACE_UNKNOWN:
{
// One or two unknown value spaces, or one has a lang tag (but not both).
- Node node1 = nv1.getNode() ;
- Node node2 = nv2.getNode() ;
+ Node node1 = nv1.asNode() ;
+ Node node2 = nv2.asNode() ;
if ( ! SystemARQ.ValueExtensions )
// No value extensions => raw rdfTermEquals
[4/6] jena git commit: JENA-1102: Add NodeValue support for
rdf:langString.
Posted by an...@apache.org.
JENA-1102: Add NodeValue support for rdf:langString.
New NodeValueLang, not using NodeValueNode.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/4c371b80
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/4c371b80
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/4c371b80
Branch: refs/heads/master
Commit: 4c371b80c59d05433689a03e228b66b0e40bece1
Parents: c0bb5f2
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Dec 17 17:43:18 2015 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Dec 17 17:43:18 2015 +0000
----------------------------------------------------------------------
.../org/apache/jena/sparql/expr/NodeValue.java | 19 +-
.../sparql/expr/nodevalue/NodeValueLang.java | 79 ++
.../sparql/expr/nodevalue/NodeValueVisitor.java | 1 +
.../jena/sparql/expr/nodevalue/XSDFuncOp.java | 6 +-
.../apache/jena/sparql/expr/TestNodeValue.java | 1304 +++++++++---------
5 files changed, 766 insertions(+), 643 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/4c371b80/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
index ebb6621..bd07620 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
@@ -240,6 +240,9 @@ public abstract class NodeValue extends ExprNode
public static NodeValue makeString(String s)
{ return new NodeValueString(s) ; }
+ public static NodeValue makeLangString(String s, String lang)
+ { return new NodeValueLang(s, lang) ; }
+
public static NodeValue makeDecimal(BigDecimal d)
{ return new NodeValueDecimal(d) ; }
@@ -900,6 +903,7 @@ public abstract class NodeValue extends ExprNode
public boolean isBoolean() { return false ; }
public boolean isString() { return false ; }
+ public boolean isLangString() { return false ; }
public boolean isNumber() { return false ; }
public boolean isInteger() { return false ; }
@@ -943,6 +947,8 @@ public abstract class NodeValue extends ExprNode
public boolean getBoolean() { raise(new ExprEvalTypeException("Not a boolean: "+this)) ; return false ; }
public String getString() { raise(new ExprEvalTypeException("Not a string: "+this)) ; return null ; }
+ public String getLang() { raise(new ExprEvalTypeException("Not a string: "+this)) ; return null ; }
+
public BigInteger getInteger() { raise(new ExprEvalTypeException("Not an integer: "+this)) ; return null ; }
public BigDecimal getDecimal() { raise(new ExprEvalTypeException("Not a decimal: "+this)) ; return null ; }
public float getFloat() { raise(new ExprEvalTypeException("Not a float: "+this)) ; return Float.NaN ; }
@@ -969,15 +975,13 @@ public abstract class NodeValue extends ExprNode
if ( isPlainLiteral )
return new NodeValueString(node.getLiteralLexicalForm(), node) ;
- if ( hasLangTag )
- {
+ if ( hasLangTag ) {
// Works for RDF 1.0 and RDF 1.1
- if ( node.getLiteralDatatype() != null && ! RDF.dtLangString.equals(node.getLiteralDatatype()) )
- {
+ if ( node.getLiteralDatatype() != null && ! RDF.dtLangString.equals(node.getLiteralDatatype()) ) {
if ( NodeValue.VerboseWarnings )
Log.warn(NodeValue.class, "Lang tag and datatype (datatype ignored)") ;
}
- return new NodeValueNode(node) ;
+ return new NodeValueLang(node) ;
}
// Typed literal
@@ -1011,8 +1015,10 @@ public abstract class NodeValue extends ExprNode
// Returns null for unrecognized literal.
private static NodeValue _setByValue(Node node) {
+ // This should not happen.
+ // nodeToNodeValue should have dealt with it.
if ( NodeUtils.hasLang(node) )
- return null ;
+ return new NodeValueLang(node) ;
LiteralLabel lit = node.getLiteral() ;
String lex = lit.getLexicalForm() ;
RDFDatatype datatype = lit.getDatatype() ;
@@ -1027,7 +1033,6 @@ public abstract class NodeValue extends ExprNode
}
try { // DatatypeFormatException - should not happen
-
if ( XSDstring.isValidLiteral(lit) )
// String - plain or xsd:string, or derived datatype.
return new NodeValueString(lit.getLexicalForm(), node) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/4c371b80/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueLang.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueLang.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueLang.java
new file mode 100644
index 0000000..157fd63
--- /dev/null
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueLang.java
@@ -0,0 +1,79 @@
+/**
+ * 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.nodevalue;
+
+import java.util.Objects ;
+
+import org.apache.jena.graph.Node ;
+import org.apache.jena.graph.NodeFactory ;
+import org.apache.jena.sparql.expr.NodeValue ;
+import org.apache.jena.sparql.util.FmtUtils ;
+
+/** A NodeValue that is a lang tagged literal (rdf:langString).
+ * A string + language tag which is not ""
+ */
+public class NodeValueLang extends NodeValue {
+ // We could extends NodeValueString for the machinary
+ // but it get confusing as then it is a NodeValueString
+ // but isString is false.
+
+ private final String string ;
+ private final String lang;
+
+ public NodeValueLang(String lex, String lang) {
+ this.string = Objects.requireNonNull(lex) ;
+ this.lang = Objects.requireNonNull(lang) ;
+ if ( lang.isEmpty() )
+ throw new IllegalArgumentException("lang is the empty string") ;
+ }
+
+ public NodeValueLang(Node n) {
+ super(Objects.requireNonNull(n)) ;
+ this.string = n.getLiteralLexicalForm() ;
+ this.lang = n.getLiteralLanguage() ;
+ }
+
+ @Override
+ public boolean isLangString() {
+ return true;
+ }
+
+ @Override
+ public String getString() { return string ; }
+
+ @Override
+ public String getLang() { return lang ; }
+
+ @Override
+ public String asString() { return string ; }
+
+ @Override
+ protected Node makeNode()
+ { return NodeFactory.createLiteral(super.getString(), lang) ; }
+
+ @Override
+ public String toString() {
+ if ( getNode() != null )
+ return FmtUtils.stringForNode(getNode()) ;
+ return "'"+getString()+"'@"+lang ;
+ }
+
+ @Override
+ public void visit(NodeValueVisitor visitor) { visitor.visit(this) ; }
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/4c371b80/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueVisitor.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueVisitor.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueVisitor.java
index cd14754..992a5c3 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueVisitor.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueVisitor.java
@@ -28,6 +28,7 @@ public interface NodeValueVisitor
public void visit(NodeValueFloat nv) ;
public void visit(NodeValueInteger nv) ;
public void visit(NodeValueNode nv) ;
+ public void visit(NodeValueLang nv) ;
public void visit(NodeValueString nv) ;
public void visit(NodeValueDT nv) ;
// public void visit(NodeValueTime nv) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/4c371b80/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/XSDFuncOp.java
----------------------------------------------------------------------
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 d0cadee..ce55719 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
@@ -224,11 +224,9 @@ public class XSDFuncOp
if ( nv.isBoolean() )
return nv.getBoolean() ;
- if ( nv.isString() )
+ if ( nv.isString() || nv.isLangString() )
+ // Plain literals.
return ! nv.getString().isEmpty() ;
- if ( nv.isLiteral() && Util.isLangString(nv.asNode()) )
- // Plain literals : no lang tag done by the test above.
- return ! nv.getNode().getLiteralLexicalForm().isEmpty() ;
if ( nv.isInteger() )
return !nv.getInteger().equals(NodeValue.IntegerZERO) ;
if ( nv.isDecimal() )
http://git-wip-us.apache.org/repos/asf/jena/blob/4c371b80/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestNodeValue.java
----------------------------------------------------------------------
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 465f896..05d6b8f 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
@@ -43,397 +43,388 @@ public class TestNodeValue extends BaseTest
{
static final double doubleAccuracy = 0.00000001d ;
- @Test public void testInt1()
- {
- NodeValue v = NodeValue.makeInteger(5) ;
- assertTrue("Not a number: "+v, v.isNumber()) ;
- assertTrue("Not an integer: "+v, v.isInteger()) ;
- assertFalse("Is a node: "+v, v.hasNode()) ;
- }
-
- @Test public void testInt2()
- {
- NodeValue v = NodeValue.makeNodeInteger(5) ;
- assertTrue("Not a number: "+v, v.isNumber()) ;
- assertTrue("Not an integer: "+v, v.isInteger()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- }
-
- @Test public void testInt3()
- {
- NodeValue v1 = NodeValue.makeNodeInteger(5) ;
- NodeValue v2 = NodeValue.makeInteger(5) ;
- assertTrue("Not same integer: "+v1+" & "+v2, v1.getInteger().equals(v2.getInteger())) ;
- }
-
- @Test public void testFloat1()
- {
- NodeValue v = NodeValue.makeFloat(5) ;
- assertTrue("Not a number: "+v, v.isNumber()) ;
- assertTrue("Not a float: "+v, v.isFloat()) ;
- assertTrue("Float not a double: "+v, v.isDouble()) ;
- assertFalse("No node: "+v, v.hasNode()) ;
- }
-
- @Test public void testFloat2()
- {
- NodeValue v = NodeValue.makeNodeFloat(5) ;
- assertTrue("Not a number: "+v, v.isNumber()) ;
- assertTrue("Not a float: "+v, v.isDouble()) ;
- assertTrue("Float not a double: "+v, v.isDouble()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- }
-
- @Test public void testFloat3()
- {
- NodeValue v1 = NodeValue.makeNodeFloat(5.7f) ;
- NodeValue v2 = NodeValue.makeFloat(5.7f) ;
- assertTrue("Not same float: "+v1+" & "+v2, v1.getFloat() == v2.getFloat()) ;
- assertTrue("Not same float as double: "+v1+" & "+v2, v1.getDouble() == v2.getDouble()) ;
- }
-
- @Test public void testDouble1()
- {
- NodeValue v = NodeValue.makeDouble(5) ;
- assertTrue("Not a number: "+v, v.isNumber()) ;
- assertTrue("Not a double: "+v, v.isDouble()) ;
- assertFalse("No node: "+v, v.hasNode()) ;
- }
+ @Test
+ public void testInt1() {
+ NodeValue v = NodeValue.makeInteger(5);
+ assertTrue("Not a number: " + v, v.isNumber());
+ assertTrue("Not an integer: " + v, v.isInteger());
+ assertFalse("Is a node: " + v, v.hasNode());
+ }
+
+ @Test
+ public void testInt2() {
+ NodeValue v = NodeValue.makeNodeInteger(5);
+ assertTrue("Not a number: " + v, v.isNumber());
+ assertTrue("Not an integer: " + v, v.isInteger());
+ assertTrue("Not a node: " + v, v.hasNode());
+ }
+
+ @Test
+ public void testInt3() {
+ NodeValue v1 = NodeValue.makeNodeInteger(5);
+ NodeValue v2 = NodeValue.makeInteger(5);
+ assertTrue("Not same integer: " + v1 + " & " + v2, v1.getInteger().equals(v2.getInteger()));
+ }
+
+ @Test
+ public void testFloat1() {
+ NodeValue v = NodeValue.makeFloat(5);
+ assertTrue("Not a number: " + v, v.isNumber());
+ assertTrue("Not a float: " + v, v.isFloat());
+ assertTrue("Float not a double: " + v, v.isDouble());
+ assertFalse("No node: " + v, v.hasNode());
+ }
+
+ @Test
+ public void testFloat2() {
+ NodeValue v = NodeValue.makeNodeFloat(5);
+ assertTrue("Not a number: " + v, v.isNumber());
+ assertTrue("Not a float: " + v, v.isDouble());
+ assertTrue("Float not a double: " + v, v.isDouble());
+ assertTrue("Not a node: " + v, v.hasNode());
+ }
+
+ @Test
+ public void testFloat3() {
+ NodeValue v1 = NodeValue.makeNodeFloat(5.7f);
+ NodeValue v2 = NodeValue.makeFloat(5.7f);
+ assertTrue("Not same float: " + v1 + " & " + v2, v1.getFloat() == v2.getFloat());
+ assertTrue("Not same float as double: " + v1 + " & " + v2, v1.getDouble() == v2.getDouble());
+ }
+
+ @Test
+ public void testDouble1() {
+ NodeValue v = NodeValue.makeDouble(5);
+ assertTrue("Not a number: " + v, v.isNumber());
+ assertTrue("Not a double: " + v, v.isDouble());
+ assertFalse("No node: " + v, v.hasNode());
+ }
+
+ @Test
+ public void testDouble2() {
+ NodeValue v = NodeValue.makeNodeDouble(5);
+ assertTrue("Not a number: " + v, v.isNumber());
+ assertTrue("Not a double: " + v, v.isDouble());
+ assertTrue("Not a node: " + v, v.hasNode());
+ }
+
+ @Test
+ public void testDouble3() {
+ NodeValue v1 = NodeValue.makeNodeDouble(5.7);
+ NodeValue v2 = NodeValue.makeDouble(5.7);
+ assertTrue("Not same double: " + v1 + " & " + v2, v1.getDouble() == v2.getDouble());
+ }
+
+ @Test
+ public void testDecimal1() {
+ NodeValue v = NodeValue.makeDecimal(new BigDecimal("1.3"));
+ assertTrue("Not a number: " + v, v.isNumber());
+ assertTrue("Not a double: " + v, v.isDecimal());
+ assertFalse("Is a node: " + v, v.hasNode());
+ }
+
+ @Test
+ public void testDecimal2() {
+ NodeValue v = NodeValue.makeNodeDecimal("1.3");
+ assertTrue("Not a number: " + v, v.isNumber());
+ assertTrue("Not a double: " + v, v.isDecimal());
+ assertTrue("Not a node: " + v, v.hasNode());
+ }
+
+ @Test
+ public void testDecimal3() {
+ NodeValue v1 = NodeValue.makeDecimal(new BigDecimal("1.3"));
+ NodeValue v2 = NodeValue.makeNodeDecimal("1.3");
+ assertTrue("Not same decimal: " + v1 + " & " + v2, v1.getDecimal().compareTo(v2.getDecimal()) == 0);
+ assertEquals("Not same decimal by equals: " + v1 + " & " + v2, v1, v2);
+ }
+
+ @Test
+ public void testDateTime1() {
+ Calendar cal = new GregorianCalendar();
+ cal.setTimeZone(TimeZone.getTimeZone("GMT"));
+ // Clear/ set all fields (milliseconds included).
+ cal.setTimeInMillis(0);
+ cal.set(2005, 01, 18, 20, 39, 10); // NB Months from 0, not 1
- @Test public void testDouble2()
- {
- NodeValue v = NodeValue.makeNodeDouble(5) ;
- assertTrue("Not a number: "+v, v.isNumber()) ;
- assertTrue("Not a double: "+v, v.isDouble()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
+ NodeValue v = NodeValue.makeDateTime(cal);
+ assertTrue("Not a dateTime: " + v, v.isDateTime());
+ assertFalse("A date: " + v, v.isDate());
+ // DateTimes always have nodes because we used that to parse the thing.
}
- @Test public void testDouble3()
- {
- NodeValue v1 = NodeValue.makeNodeDouble(5.7) ;
- NodeValue v2 = NodeValue.makeDouble(5.7) ;
- assertTrue("Not same double: "+v1+" & "+v2, v1.getDouble() == v2.getDouble()) ;
+ @Test
+ public void testDateTime2() {
+ NodeValue v = NodeValue.makeNodeDateTime("2005-02-18T20:39:10Z");
+ assertTrue("Not a dateTime: " + v, v.isDateTime());
+ assertFalse("A date: " + v, v.isDate());
+ assertTrue("Not a node: " + v, v.hasNode());
}
- @Test public void testDecimal1()
- {
- NodeValue v = NodeValue.makeDecimal(new BigDecimal("1.3")) ;
- assertTrue("Not a number: "+v, v.isNumber()) ;
- assertTrue("Not a double: "+v, v.isDecimal()) ;
- assertFalse("Is a node: "+v, v.hasNode()) ;
+ @Test
+ public void testDateTime3() {
+ NodeValue v1 = NodeValue.makeDateTime("2005-02-18T20:39:10Z");
+ NodeValue v2 = NodeValue.makeNodeDateTime("2005-02-18T20:39:10Z");
+ assertEquals("Not Calendar.equals: ", v1.getDateTime(), v2.getDateTime());
}
- @Test public void testDecimal2()
- {
- NodeValue v = NodeValue.makeNodeDecimal("1.3") ;
- assertTrue("Not a number: "+v, v.isNumber()) ;
- assertTrue("Not a double: "+v, v.isDecimal()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- }
-
- @Test public void testDecimal3()
- {
- NodeValue v1 = NodeValue.makeDecimal(new BigDecimal("1.3")) ;
- NodeValue v2 = NodeValue.makeNodeDecimal("1.3") ;
- assertTrue("Not same decimal: "+v1+" & "+v2, v1.getDecimal().compareTo(v2.getDecimal()) == 0 ) ;
- assertEquals("Not same decimal by equals: "+v1+" & "+v2, v1, v2) ;
- }
-
- @Test public void testDateTime1()
- {
- Calendar cal = new GregorianCalendar() ;
- cal.setTimeZone(TimeZone.getTimeZone("GMT")) ;
+ @Test
+ public void testDateTime4() {
+ Calendar cal1 = new GregorianCalendar();
+ cal1.setTimeZone(TimeZone.getTimeZone("GMT"));
// Clear/ set all fields (milliseconds included).
- cal.setTimeInMillis(0) ;
- cal.set(2005,01,18,20,39,10) ; // NB Months from 0, not 1
-
- NodeValue v = NodeValue.makeDateTime(cal) ;
- assertTrue("Not a dateTime: "+v, v.isDateTime()) ;
- assertFalse("A date: "+v, v.isDate()) ;
- // DateTimes always have nodes because we used that to parse the thing.
- }
+ cal1.setTimeInMillis(0);
+ cal1.set(2005, 01, 18, 20, 39, 10); // NB Months from 0, not 1
- @Test public void testDateTime2()
- {
- NodeValue v = NodeValue.makeNodeDateTime("2005-02-18T20:39:10Z") ;
- assertTrue("Not a dateTime: "+v, v.isDateTime()) ;
- assertFalse("A date: "+v, v.isDate()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
+ NodeValue v = NodeValue.makeNode("2005-02-18T20:39:10Z", XSDDatatype.XSDdateTime);
+ assertTrue("Not a dateTime: " + v, v.isDateTime());
+ assertFalse("A date: " + v, v.isDate());
+ assertTrue("Not a node: " + v, v.hasNode());
+ Calendar cal2 = v.getDateTime().toGregorianCalendar();
+ assertEquals("Not equal: " + v, 0, cal1.compareTo(cal2));
}
-
-
-// NodeValue v = NodeValue.makeNode("2005-02-18T20:39:10Z", XSDDatatype.XSDdateTime) ;
-// assertTrue("Not a dateTime: "+v, v.isDate()) ;
-// assertNotNull("No node: "+v, v.getNode()) ;
-
- @Test public void testDateTime3()
- {
- NodeValue v1 = NodeValue.makeDateTime("2005-02-18T20:39:10Z") ;
- NodeValue v2 = NodeValue.makeNodeDateTime("2005-02-18T20:39:10Z") ;
- assertEquals("Not Calendar.equals: ", v1.getDateTime(), v2.getDateTime()) ;
- }
-
- @Test public void testDateTime4()
- {
- Calendar cal1 = new GregorianCalendar() ;
- cal1.setTimeZone(TimeZone.getTimeZone("GMT")) ;
- // Clear/ set all fields (milliseconds included).
- cal1.setTimeInMillis(0) ;
- cal1.set(2005,01,18,20,39,10) ; // NB Months from 0, not 1
-
- NodeValue v = NodeValue.makeNode("2005-02-18T20:39:10Z", XSDDatatype.XSDdateTime) ;
- assertTrue("Not a dateTime: "+v, v.isDateTime()) ;
- assertFalse("A date: "+v, v.isDate()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- Calendar cal2 = v.getDateTime().toGregorianCalendar() ;
- assertEquals("Not equal: "+v, 0, cal1.compareTo(cal2)) ;
- }
-
- @Test public void testDateTime5()
- {
- boolean b = NodeValue.VerboseWarnings ;
+ @Test
+ public void testDateTime5() {
+ boolean b = NodeValue.VerboseWarnings;
try {
- NodeValue.VerboseWarnings = false ;
+ NodeValue.VerboseWarnings = false;
// Illegal lexical for a dateTime.
- NodeValue v = NodeValue.makeNode("2005-02-18", XSDDatatype.XSDdateTime) ;
- assertFalse("Date!: "+v, v.isDate()) ;
- assertFalse("Datetime!: "+v, v.isDateTime()) ;
- } finally {
+ NodeValue v = NodeValue.makeNode("2005-02-18", XSDDatatype.XSDdateTime);
+ assertFalse("Date!: " + v, v.isDate());
+ assertFalse("Datetime!: " + v, v.isDateTime());
+ }
+ finally {
NodeValue.VerboseWarnings = b;
}
}
-
- @Test public void testDateTime6()
- {
- NodeValue v0 = NodeValue.makeDateTime("2005-02-18T20:39:10Z") ;
- NodeValue v1 = NodeValue.makeDateTime("2005-02-18T20:39:10.0Z") ;
- NodeValue v2 = NodeValue.makeDateTime("2005-02-18T20:39:10.00Z") ;
- NodeValue v3 = NodeValue.makeDateTime("2005-02-18T20:39:10.000Z") ;
- assertEquals("Not Calendar.equals: ", v0.getDateTime(), v1.getDateTime()) ;
- assertEquals("Not Calendar.equals: ", v0.getDateTime(), v2.getDateTime()) ;
- assertEquals("Not Calendar.equals: ", v0.getDateTime(), v3.getDateTime()) ;
+
+ @Test
+ public void testDateTime6() {
+ NodeValue v0 = NodeValue.makeDateTime("2005-02-18T20:39:10Z");
+ NodeValue v1 = NodeValue.makeDateTime("2005-02-18T20:39:10.0Z");
+ NodeValue v2 = NodeValue.makeDateTime("2005-02-18T20:39:10.00Z");
+ NodeValue v3 = NodeValue.makeDateTime("2005-02-18T20:39:10.000Z");
+ assertEquals("Not Calendar.equals: ", v0.getDateTime(), v1.getDateTime());
+ assertEquals("Not Calendar.equals: ", v0.getDateTime(), v2.getDateTime());
+ assertEquals("Not Calendar.equals: ", v0.getDateTime(), v3.getDateTime());
}
-
- @Test public void testDateTime7()
- {
- NodeValue v0 = NodeValue.makeDateTime("2005-02-18T20:39:10Z") ;
- NodeValue v1 = NodeValue.makeDateTime("2005-02-18T20:39:10.001Z") ;
- assertNotSame("Calendar.equals: ", v0.getDateTime(), v1.getDateTime()) ;
+
+ @Test
+ public void testDateTime7() {
+ NodeValue v0 = NodeValue.makeDateTime("2005-02-18T20:39:10Z");
+ NodeValue v1 = NodeValue.makeDateTime("2005-02-18T20:39:10.001Z");
+ assertNotSame("Calendar.equals: ", v0.getDateTime(), v1.getDateTime());
}
-
- @Test public void testDateTime8()
- {
- NodeValue v0 = NodeValue.makeDateTime("2005-02-18T20:39:10-05:00") ;
- NodeValue v1 = NodeValue.makeDateTime("2005-02-18T17:39:10.000-08:00") ;
- assertEquals("Not Calendar.equals: ", v0.getDateTime(), v1.getDateTime()) ;
+
+ @Test
+ public void testDateTime8() {
+ NodeValue v0 = NodeValue.makeDateTime("2005-02-18T20:39:10-05:00");
+ NodeValue v1 = NodeValue.makeDateTime("2005-02-18T17:39:10.000-08:00");
+ assertEquals("Not Calendar.equals: ", v0.getDateTime(), v1.getDateTime());
}
-
- @Test public void testDate1()
- {
- Calendar cal = new GregorianCalendar() ;
- cal.setTimeZone(TimeZone.getTimeZone("GMT")) ;
+
+ @Test
+ public void testDate1() {
+ Calendar cal = new GregorianCalendar();
+ cal.setTimeZone(TimeZone.getTimeZone("GMT"));
// Clear/ set all fields (milliseconds included).
- cal.setTimeInMillis(0) ;
+ cal.setTimeInMillis(0);
// NB Months from 0, not 1
// For a date, must be time = 00:00:00
- cal.set(2005,01,18,0,0,0) ;
+ cal.set(2005, 01, 18, 0, 0, 0);
- NodeValue v = NodeValue.makeDate(cal) ;
- assertTrue("Not a date: "+v, v.isDate()) ;
- assertFalse("A dateTime: "+v, v.isDateTime()) ;
+ NodeValue v = NodeValue.makeDate(cal);
+ assertTrue("Not a date: " + v, v.isDate());
+ assertFalse("A dateTime: " + v, v.isDateTime());
// DateTimes always have nodes because we used that to parse the thing.
}
-
- @Test public void testDate2()
- {
- NodeValue v = NodeValue.makeNodeDate("2005-02-18") ;
- assertTrue("Not a date: "+v, v.isDate()) ;
- assertFalse("A dateTime: "+v, v.isDateTime()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
+
+ @Test
+ public void testDate2() {
+ NodeValue v = NodeValue.makeNodeDate("2005-02-18");
+ assertTrue("Not a date: " + v, v.isDate());
+ assertFalse("A dateTime: " + v, v.isDateTime());
+ assertTrue("Not a node: " + v, v.hasNode());
}
-
- @Test public void testDate3()
- {
- NodeValue v1 = NodeValue.makeDate("2005-02-18+01:00") ;
- NodeValue v2 = NodeValue.makeNodeDate("2005-02-18+01:00") ;
- assertEquals("Not Calendar.equals: ", v1.getDateTime(), v2.getDateTime()) ;
+
+ @Test
+ public void testDate3() {
+ NodeValue v1 = NodeValue.makeDate("2005-02-18+01:00");
+ NodeValue v2 = NodeValue.makeNodeDate("2005-02-18+01:00");
+ assertEquals("Not Calendar.equals: ", v1.getDateTime(), v2.getDateTime());
}
- @Test public void testDate4()
- {
- Calendar cal1 = new GregorianCalendar() ;
- cal1.setTimeZone(TimeZone.getTimeZone("GMT")) ;
+ @Test
+ public void testDate4() {
+ Calendar cal1 = new GregorianCalendar();
+ cal1.setTimeZone(TimeZone.getTimeZone("GMT"));
// Clear/ set all fields (milliseconds included).
- cal1.setTimeInMillis(0) ;
+ cal1.setTimeInMillis(0);
// Must be ",0,0,0"
- cal1.set(2005,01,18,0,0,0) ; // NB Months from 0, not 1
-
- NodeValue v = NodeValue.makeNode("2005-02-18Z", XSDDatatype.XSDdate) ;
- assertTrue("Not a date: "+v, v.isDate()) ;
- assertFalse("A dateTime: "+v, v.isDateTime()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- Calendar cal2 = v.getDateTime().toGregorianCalendar() ;
- assertEquals("Not equal: "+v, 0, cal1.compareTo(cal2)) ;
- }
-
- @Test public void testDate5()
- {
- boolean b = NodeValue.VerboseWarnings ;
+ cal1.set(2005, 01, 18, 0, 0, 0); // NB Months from 0, not 1
+
+ NodeValue v = NodeValue.makeNode("2005-02-18Z", XSDDatatype.XSDdate);
+ assertTrue("Not a date: " + v, v.isDate());
+ assertFalse("A dateTime: " + v, v.isDateTime());
+ assertTrue("Not a node: " + v, v.hasNode());
+ Calendar cal2 = v.getDateTime().toGregorianCalendar();
+ assertEquals("Not equal: " + v, 0, cal1.compareTo(cal2));
+ }
+
+ @Test
+ public void testDate5() {
+ boolean b = NodeValue.VerboseWarnings;
try {
- NodeValue.VerboseWarnings = false ;
+ NodeValue.VerboseWarnings = false;
// Illegal lexical for a date.
- NodeValue v = NodeValue.makeNode("2005-02-18T20:39:10Z", XSDDatatype.XSDdate) ;
- assertFalse("Datetime!: "+v, v.isDateTime()) ;
- assertFalse("Date!: "+v, v.isDate()) ;
- } finally {
+ NodeValue v = NodeValue.makeNode("2005-02-18T20:39:10Z", XSDDatatype.XSDdate);
+ assertFalse("Datetime!: " + v, v.isDateTime());
+ assertFalse("Date!: " + v, v.isDate());
+ }
+ finally {
NodeValue.VerboseWarnings = b;
}
}
-
- @Test public void testNodeInt1()
- {
- NodeValue v = NodeValue.makeNode("57", XSDDatatype.XSDinteger) ;
- assertTrue("Not a number: "+v, v.isNumber()) ;
- assertTrue("Not an integer: "+v, v.isInteger()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- }
-
- @Test public void testNodeInt2()
- {
- NodeValue v = NodeValue.makeNode("57", XSDDatatype.XSDdouble) ;
- assertTrue("Not a number: "+v, v.isNumber()) ;
- assertTrue("Not a double: "+v, v.isDouble()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- }
-
- @Test public void testNodeInt3()
- {
- NodeValue v = NodeValue.makeNode("57", XSDDatatype.XSDinteger) ;
- assertTrue("Not a number: "+v, v.isNumber()) ;
- assertTrue("Not an integer: "+v, v.isInteger()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- String actualStr = v.asQuotedString() ;
- assertEquals("Print form mismatch", "57", actualStr) ;
- }
-
- @Test public void testNodeInt4()
- {
- NodeValue v = NodeValue.makeNodeInteger(18) ;
- assertTrue("Not a number: "+v, v.isNumber()) ;
- assertTrue("Not an integer: "+v, v.isInteger()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- String actualStr = v.asQuotedString() ;
- assertEquals("Print form mismatch", "18", actualStr) ;
- }
-
- @Test public void testNodeInt5()
- {
- // Legal as a bare integer but not canonical form
- NodeValue v = NodeValue.makeNodeInteger("018") ;
- assertTrue("Not a number: "+v, v.isNumber()) ;
- assertTrue("Not an integer: "+v, v.isInteger()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- String actualStr = v.asQuotedString() ;
- assertEquals("Print form mismatch", "018", actualStr) ;
- }
-
- @Test public void testNodeFloat1()
- {
- // Theer is no SPARQL representation in short form of a float.
- NodeValue v = NodeValue.makeNode("57.0", XSDDatatype.XSDfloat) ;
- assertTrue("Not a number: "+v, v.isNumber()) ;
- assertTrue("Not a float: "+v, v.isFloat()) ;
- assertTrue("Not a double(float): "+v, v.isDouble()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- String actualStr = v.asQuotedString() ;
-
- assertEquals("Print form mismatch",
- "\"57.0\"^^<"+XSDDatatype.XSDfloat.getURI()+">",
- actualStr);
- }
-
- @Test public void testNodeDouble1()
- {
- // Note input form is legal and canomical as a lexical form double
- NodeValue v = NodeValue.makeNode("57.0e0", XSDDatatype.XSDdouble) ;
- assertTrue("Not a number: "+v, v.isNumber()) ;
- assertTrue("Not a double: "+v, v.isDouble()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- String actualStr = v.asQuotedString() ;
-
+
+ @Test
+ public void testNodeInt1() {
+ NodeValue v = NodeValue.makeNode("57", XSDDatatype.XSDinteger);
+ assertTrue("Not a number: " + v, v.isNumber());
+ assertTrue("Not an integer: " + v, v.isInteger());
+ assertTrue("Not a node: " + v, v.hasNode());
+ }
+
+ @Test
+ public void testNodeInt2() {
+ NodeValue v = NodeValue.makeNode("57", XSDDatatype.XSDdouble);
+ assertTrue("Not a number: " + v, v.isNumber());
+ assertTrue("Not a double: " + v, v.isDouble());
+ assertTrue("Not a node: " + v, v.hasNode());
+ }
+
+ @Test
+ public void testNodeInt3() {
+ NodeValue v = NodeValue.makeNode("57", XSDDatatype.XSDinteger);
+ assertTrue("Not a number: " + v, v.isNumber());
+ assertTrue("Not an integer: " + v, v.isInteger());
+ assertTrue("Not a node: " + v, v.hasNode());
+ String actualStr = v.asQuotedString();
+ assertEquals("Print form mismatch", "57", actualStr);
+ }
+
+ @Test
+ public void testNodeInt4() {
+ NodeValue v = NodeValue.makeNodeInteger(18);
+ assertTrue("Not a number: " + v, v.isNumber());
+ assertTrue("Not an integer: " + v, v.isInteger());
+ assertTrue("Not a node: " + v, v.hasNode());
+ String actualStr = v.asQuotedString();
+ assertEquals("Print form mismatch", "18", actualStr);
+ }
+
+ @Test
+ public void testNodeInt5() {
+ // Legal as a bare integer but not canonical form
+ NodeValue v = NodeValue.makeNodeInteger("018");
+ assertTrue("Not a number: " + v, v.isNumber());
+ assertTrue("Not an integer: " + v, v.isInteger());
+ assertTrue("Not a node: " + v, v.hasNode());
+ String actualStr = v.asQuotedString();
+ assertEquals("Print form mismatch", "018", actualStr);
+ }
+
+ @Test
+ public void testNodeFloat1() {
+ // Theer is no SPARQL representation in short form of a float.
+ NodeValue v = NodeValue.makeNode("57.0", XSDDatatype.XSDfloat);
+ assertTrue("Not a number: " + v, v.isNumber());
+ assertTrue("Not a float: " + v, v.isFloat());
+ assertTrue("Not a double(float): " + v, v.isDouble());
+ assertTrue("Not a node: " + v, v.hasNode());
+ String actualStr = v.asQuotedString();
+
+ assertEquals("Print form mismatch", "\"57.0\"^^<" + XSDDatatype.XSDfloat.getURI() + ">", actualStr);
+ }
+
+ @Test
+ public void testNodeDouble1() {
+ // Note input form is legal and canomical as a lexical form double
+ NodeValue v = NodeValue.makeNode("57.0e0", XSDDatatype.XSDdouble);
+ assertTrue("Not a number: " + v, v.isNumber());
+ assertTrue("Not a double: " + v, v.isDouble());
+ assertTrue("Not a node: " + v, v.hasNode());
+ String actualStr = v.asQuotedString();
+
assertEquals("Print form mismatch", "57.0e0", actualStr) ;
// "\"57\"^^<"+XSDDatatype.XSDdouble.getURI()+">",
// actualStr);
}
- @Test public void testNodeDouble2()
- {
- // Note input form is not legal as a lexical form double
- NodeValue v = NodeValue.makeNode("57", XSDDatatype.XSDdouble) ;
- assertTrue("Not a number: "+v, v.isNumber()) ;
- assertTrue("Not a double: "+v, v.isDouble()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- String actualStr = v.asQuotedString() ;
-
- assertEquals("Print form mismatch",
- "\"57\"^^<"+XSDDatatype.XSDdouble.getURI()+">",
- actualStr);
- }
-
- @Test public void testNodeDouble3()
- {
- // Note input form is legal but not canonical as a bare FP
- NodeValue v = NodeValue.makeNode("057.0e0", XSDDatatype.XSDdouble) ;
- assertTrue("Not a number: "+v, v.isNumber()) ;
- assertTrue("Not a double: "+v, v.isDouble()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- String actualStr = v.asQuotedString() ;
-
+ @Test
+ public void testNodeDouble2() {
+ // Note input form is not legal as a lexical form double
+ NodeValue v = NodeValue.makeNode("57", XSDDatatype.XSDdouble);
+ assertTrue("Not a number: " + v, v.isNumber());
+ assertTrue("Not a double: " + v, v.isDouble());
+ assertTrue("Not a node: " + v, v.hasNode());
+ String actualStr = v.asQuotedString();
+
+ assertEquals("Print form mismatch", "\"57\"^^<" + XSDDatatype.XSDdouble.getURI() + ">", actualStr);
+ }
+
+ @Test
+ public void testNodeDouble3() {
+ // Note input form is legal but not canonical as a bare FP
+ NodeValue v = NodeValue.makeNode("057.0e0", XSDDatatype.XSDdouble);
+ assertTrue("Not a number: " + v, v.isNumber());
+ assertTrue("Not a double: " + v, v.isDouble());
+ assertTrue("Not a node: " + v, v.hasNode());
+ String actualStr = v.asQuotedString();
+
assertEquals("Print form mismatch", "057.0e0", actualStr);
}
- @Test public void testNodeBool1()
- {
- NodeValue v = NodeValue.makeNode("true", XSDDatatype.XSDboolean) ;
- assertTrue("Not a boolean: "+v, v.isBoolean()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- assertTrue("Not satisfied: "+v, v.getBoolean());
+ @Test
+ public void testNodeBool1() {
+ NodeValue v = NodeValue.makeNode("true", XSDDatatype.XSDboolean);
+ assertTrue("Not a boolean: " + v, v.isBoolean());
+ assertTrue("Not a node: " + v, v.hasNode());
+ assertTrue("Not satisfied: " + v, v.getBoolean());
}
- @Test public void testNodeBool2()
- {
- NodeValue v = NodeValue.makeNode("false", XSDDatatype.XSDboolean) ;
- assertTrue("Not a boolean: "+v, v.isBoolean()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- assertFalse("Satisfied: "+v, v.getBoolean()) ;
+ @Test
+ public void testNodeBool2() {
+ NodeValue v = NodeValue.makeNode("false", XSDDatatype.XSDboolean);
+ assertTrue("Not a boolean: " + v, v.isBoolean());
+ assertTrue("Not a node: " + v, v.hasNode());
+ assertFalse("Satisfied: " + v, v.getBoolean());
}
- @Test public void testNodeBool3()
- {
- NodeValue v = NodeValue.makeBoolean(true) ;
- 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)) ;
+ @Test
+ public void testNodeBool3() {
+ NodeValue v = NodeValue.makeBoolean(true);
+ 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));
}
- @Test public void testNodeBool4()
- {
- NodeValue v = NodeValue.makeBoolean(false) ;
- 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)) ;
+ @Test
+ public void testNodeBool4() {
+ NodeValue v = NodeValue.makeBoolean(false);
+ 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));
}
-
- static NodeValue make(String str)
- {
- Node n = NodeFactoryExtra.parseNode(str) ;
- NodeValue nv = NodeValue.makeNode(n) ;
- return nv ;
+
+ static NodeValue make(String str) {
+ Node n = NodeFactoryExtra.parseNode(str);
+ NodeValue nv = NodeValue.makeNode(n);
+ return nv;
}
-
+
@Test public void gregorian_01() {
NodeValue nv = make("'1999'^^xsd:gYear") ;
@@ -483,353 +474,402 @@ public class TestNodeValue extends BaseTest
assertFalse(nv.isGMonthDay()) ;
assertTrue(nv.isGDay()) ;
}
+
+ @Test public void langString_01() {
+
+ NodeValue nv = make("''@en") ;
+ assertFalse(nv.isString()) ;
+ assertTrue(nv.isLangString()) ;
+ assertEquals("en", nv.getLang()) ;
+ assertEquals("", nv.getString()) ;
+ assertEquals("", nv.asString()) ;
+ }
- @Test public void testBadLexcial1()
- {
- boolean b = NodeValue.VerboseWarnings ;
+ @Test public void langString_02() {
+ NodeValue nv = make("'not empty'@cy") ;
+ assertFalse(nv.isString()) ;
+ assertTrue(nv.isLangString()) ;
+ assertEquals("cy", nv.getLang()) ;
+ assertEquals("not empty", nv.getString()) ;
+ assertEquals("not empty", nv.asString()) ;
+ }
+
+ @Test
+ public void testBadLexcial1() {
+ boolean b = NodeValue.VerboseWarnings;
try {
- NodeValue.VerboseWarnings = false ;
- NodeValue v = NodeValue.makeNodeInteger("abc") ;
- assertFalse("Good integer: "+v, v.isInteger()) ;
- assertFalse("Good number: "+v, v.isNumber()) ;
- } finally { NodeValue.VerboseWarnings = b ; }
+ NodeValue.VerboseWarnings = false;
+ NodeValue v = NodeValue.makeNodeInteger("abc");
+ assertFalse("Good integer: " + v, v.isInteger());
+ assertFalse("Good number: " + v, v.isNumber());
+ }
+ finally {
+ NodeValue.VerboseWarnings = b;
+ }
}
-
- @Test public void testBadLexcial2()
- {
- boolean b = NodeValue.VerboseWarnings ;
+
+ @Test
+ public void testBadLexcial2() {
+ boolean b = NodeValue.VerboseWarnings;
try {
- NodeValue.VerboseWarnings = false ;
- NodeValue v = NodeValue.makeNodeInteger("1.8") ;
- assertFalse("Good integer: "+v, v.isInteger()) ;
- assertFalse("Good number: "+v, v.isNumber()) ;
- } finally { NodeValue.VerboseWarnings = b ; }
+ NodeValue.VerboseWarnings = false;
+ NodeValue v = NodeValue.makeNodeInteger("1.8");
+ assertFalse("Good integer: " + v, v.isInteger());
+ assertFalse("Good number: " + v, v.isNumber());
+ }
+ finally {
+ NodeValue.VerboseWarnings = b;
+ }
}
-
- @Test public void testBadLexcial3()
- {
- boolean b = NodeValue.VerboseWarnings ;
+
+ @Test
+ public void testBadLexcial3() {
+ boolean b = NodeValue.VerboseWarnings;
try {
- NodeValue.VerboseWarnings = false ;
- NodeValue v = NodeValue.makeDateTime("2005-10-34T00:00:01Z") ;
- assertFalse("Good date: "+v, v.isDateTime()) ;
- } finally { NodeValue.VerboseWarnings = b ; }
+ NodeValue.VerboseWarnings = false;
+ NodeValue v = NodeValue.makeDateTime("2005-10-34T00:00:01Z");
+ assertFalse("Good date: " + v, v.isDateTime());
+ }
+ finally {
+ NodeValue.VerboseWarnings = b;
+ }
}
- @Test public void testBadLexcial4()
- {
- boolean b = NodeValue.VerboseWarnings ;
+ @Test
+ public void testBadLexcial4() {
+ boolean b = NodeValue.VerboseWarnings;
try {
// Has a space
- String s = "2005-10-14T 09:30:23+01:00" ;
- NodeValue.VerboseWarnings = false ;
- NodeValue v1 = NodeValue.makeDateTime(s) ;
- assertFalse("Good date: "+v1, v1.isDateTime()) ;
- s = s.replaceAll(" ", "") ;
- NodeValue v2 = NodeValue.makeDateTime(s) ;
- assertTrue("Bad date: "+v2, v2.isDateTime()) ;
- } finally { NodeValue.VerboseWarnings = b ; }
+ String s = "2005-10-14T 09:30:23+01:00";
+ NodeValue.VerboseWarnings = false;
+ NodeValue v1 = NodeValue.makeDateTime(s);
+ assertFalse("Good date: " + v1, v1.isDateTime());
+ s = s.replaceAll(" ", "");
+ NodeValue v2 = NodeValue.makeDateTime(s);
+ assertTrue("Bad date: " + v2, v2.isDateTime());
+ }
+ finally {
+ NodeValue.VerboseWarnings = b;
+ }
}
-
+
// Effective boolean value rules.
- // boolean: value of the boolean
- // string: length(string) > 0 is true
- // numeric: number != Nan && number != 0 is true
+ // boolean: value of the boolean
+ // string: length(string) > 0 is true
+ // numeric: number != Nan && number != 0 is true
// http://www.w3.org/TR/xquery/#dt-ebv
- @Test public void testEBV1()
- {
- assertTrue("Not a boolean", NodeValue.TRUE.isBoolean()) ;
- assertTrue("Not true", NodeValue.TRUE.getBoolean()) ;
- assertTrue("Not true", XSDFuncOp.booleanEffectiveValue(NodeValue.TRUE)) ;
+ @Test
+ public void testEBV1() {
+ assertTrue("Not a boolean", NodeValue.TRUE.isBoolean());
+ assertTrue("Not true", NodeValue.TRUE.getBoolean());
+ assertTrue("Not true", XSDFuncOp.booleanEffectiveValue(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)) ;
+ @Test
+ public void testEBV2() {
+ assertTrue("Not a boolean", NodeValue.FALSE.isBoolean());
+ assertFalse("Not false", NodeValue.FALSE.getBoolean());
+ assertFalse("Not false", XSDFuncOp.booleanEffectiveValue(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)) ;
+
+ @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));
}
-
- @Test public void testEBV4()
- {
- NodeValue v = NodeValue.makeInteger(0) ;
- assertFalse("It's a boolean: "+v, v.isBoolean()) ;
- try { v.getBoolean() ; fail("getBoolean should fail") ; } catch (ExprEvalException e) {}
- assertFalse("Not EBV false: "+v, XSDFuncOp.booleanEffectiveValue(v)) ;
+
+ @Test
+ public void testEBV4() {
+ NodeValue v = NodeValue.makeInteger(0);
+ assertFalse("It's a boolean: " + v, v.isBoolean());
+ try {
+ v.getBoolean();
+ fail("getBoolean should fail");
+ }
+ catch (ExprEvalException e) {}
+ assertFalse("Not EBV false: " + v, XSDFuncOp.booleanEffectiveValue(v));
}
-
- @Test public void testEBV5()
- {
- NodeValue v = NodeValue.makeString("xyz") ;
- assertFalse("It's a boolean: "+v, v.isBoolean()) ;
- //assertTrue("Not a node: "+v, v.hasNode()) ;
- try { v.getBoolean() ; fail("getBoolean should fail") ; } catch (ExprEvalException e) {}
- assertTrue("Not EBV true: "+v, XSDFuncOp.booleanEffectiveValue(v)) ;
+
+ @Test
+ public void testEBV5() {
+ NodeValue v = NodeValue.makeString("xyz");
+ assertFalse("It's a boolean: " + v, v.isBoolean());
+ // assertTrue("Not a node: "+v, v.hasNode()) ;
+ try {
+ v.getBoolean();
+ fail("getBoolean should fail");
+ }
+ catch (ExprEvalException e) {}
+ assertTrue("Not EBV true: " + v, XSDFuncOp.booleanEffectiveValue(v));
}
-
- @Test public void testEBV6()
- {
- NodeValue v = NodeValue.makeString("") ;
- assertFalse("It's a boolean: "+v, v.isBoolean()) ;
- try { v.getBoolean() ; fail("getBoolean should fail") ; } catch (ExprEvalException e) {}
- assertFalse("Not EBV false: "+v, XSDFuncOp.booleanEffectiveValue(v)) ;
+
+ @Test
+ public void testEBV6() {
+ NodeValue v = NodeValue.makeString("");
+ assertFalse("It's a boolean: " + v, v.isBoolean());
+ try {
+ v.getBoolean();
+ fail("getBoolean should fail");
+ }
+ catch (ExprEvalException e) {}
+ assertFalse("Not EBV false: " + v, XSDFuncOp.booleanEffectiveValue(v));
}
-
+
// EBV includes plain literals which includes language tagged literals.
- @Test public void testEBV7()
- {
- Node x = NodeFactory.createLiteral("", "en") ;
- NodeValue v = NodeValue.makeNode(x) ;
- assertFalse("Not EBV false: "+v, XSDFuncOp.booleanEffectiveValue(v)) ;
+ @Test
+ public void testEBV7() {
+ Node x = NodeFactory.createLiteral("", "en");
+ NodeValue v = NodeValue.makeNode(x);
+ assertFalse("Not EBV false: " + v, XSDFuncOp.booleanEffectiveValue(v));
}
- @Test public void testEBV8()
- {
- Node x = NodeFactory.createLiteral("not empty", "en") ;
- NodeValue v = NodeValue.makeNode(x) ;
- assertTrue("Not EBV true: "+v, XSDFuncOp.booleanEffectiveValue(v)) ;
+ @Test
+ public void testEBV8() {
+ Node x = NodeFactory.createLiteral("not empty", "en");
+ NodeValue v = NodeValue.makeNode(x);
+ assertTrue("Not EBV true: " + v, XSDFuncOp.booleanEffectiveValue(v));
}
private static boolean filterEBV(NodeValue nv) {
- try { return XSDFuncOp.booleanEffectiveValue(nv) ; }
- catch (ExprEvalException ex) { return false ; }
+ try {
+ return XSDFuncOp.booleanEffectiveValue(nv);
+ }
+ catch (ExprEvalException ex) {
+ return false;
+ }
}
-
-
- @Test public void testFloatDouble1()
- {
- NodeValue v1 = NodeValue.makeNodeDouble("1.5") ;
- NodeValue v2 = NodeValue.makeNode("1.5", XSDDatatype.XSDfloat) ;
- assertTrue("Should be equal: 1.5 float and 1.5 double", NodeValue.sameAs(v1, v2)) ;
+
+ @Test
+ public void testFloatDouble1() {
+ NodeValue v1 = NodeValue.makeNodeDouble("1.5");
+ NodeValue v2 = NodeValue.makeNode("1.5", XSDDatatype.XSDfloat);
+ assertTrue("Should be equal: 1.5 float and 1.5 double", NodeValue.sameAs(v1, v2));
}
-
- @Test public void testFloatDouble5()
- {
- NodeValue v1 = NodeValue.makeNodeDouble("1.3") ;
- NodeValue v2 = NodeValue.makeNode("1.3", XSDDatatype.XSDfloat) ;
- assertFalse("Should not be equal: 1.3 float and 1.3 double", NodeValue.sameAs(v1, v2)) ;
+
+ @Test
+ public void testFloatDouble5() {
+ NodeValue v1 = NodeValue.makeNodeDouble("1.3");
+ NodeValue v2 = NodeValue.makeNode("1.3", XSDDatatype.XSDfloat);
+ assertFalse("Should not be equal: 1.3 float and 1.3 double", NodeValue.sameAs(v1, v2));
}
-
+
// More effective boolean values - see TestExpressionARQ
-
- @Test public void testString1()
- {
- NodeValue v = NodeValue.makeString("string") ;
- assertTrue("Not a string: "+v, v.isString()) ;
- assertFalse("Is a node: "+v, v.hasNode()) ;
-
- }
-
- @Test public void testNodeString1()
- {
- NodeValue v = NodeValue.makeNode("string", null, (String)null) ; // Plain literal
- assertTrue("Not a string: "+v, v.isString()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- }
-
- @Test public void testNodeString2()
- {
- NodeValue v = NodeValue.makeNode("string", null, (String)null) ; // Plain literal
- assertTrue("Not a string: "+v, v.isString()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- String actualStr = v.asQuotedString() ;
- assertEquals("Print form mismatch", "\"string\"", actualStr) ;
- }
-
- @Test public void testNodeString3()
- {
- NodeValue v = NodeValue.makeNode("string", XSDDatatype.XSDstring) ; // XSD String literal
- assertTrue("Not a string: "+v, v.isString()) ;
- assertTrue("Not a node: "+v, v.hasNode()) ;
- String actualStr = v.asQuotedString() ;
+
+ @Test
+ public void testString1() {
+ NodeValue v = NodeValue.makeString("string");
+ assertTrue("Not a string: " + v, v.isString());
+ assertFalse("Is a node: " + v, v.hasNode());
+
+ }
+
+ @Test
+ public void testNodeString1() {
+ NodeValue v = NodeValue.makeNode("string", null, (String)null); // Plain
+ // literal
+ assertTrue("Not a string: " + v, v.isString());
+ assertTrue("Not a node: " + v, v.hasNode());
+ }
+
+ @Test
+ public void testNodeString2() {
+ NodeValue v = NodeValue.makeNode("string", null, (String)null); // Plain
+ // literal
+ assertTrue("Not a string: " + v, v.isString());
+ assertTrue("Not a node: " + v, v.hasNode());
+ String actualStr = v.asQuotedString();
+ assertEquals("Print form mismatch", "\"string\"", actualStr);
+ }
+
+ @Test
+ public void testNodeString3() {
+ NodeValue v = NodeValue.makeNode("string", XSDDatatype.XSDstring); // XSD
+ // String
+ // literal
+ assertTrue("Not a string: " + v, v.isString());
+ assertTrue("Not a node: " + v, v.hasNode());
+ String actualStr = v.asQuotedString();
String rightAnswer = JenaRuntime.isRDF11
// RDF 1.1 -- appearance is a without ^^
- ? "\"string\""
- : "\"string\"^^<"+XSDDatatype.XSDstring.getURI()+">" ;
-
- assertEquals("Print form mismatch", rightAnswer, actualStr) ;
+ ? "\"string\"" : "\"string\"^^<" + XSDDatatype.XSDstring.getURI() + ">";
+
+ assertEquals("Print form mismatch", rightAnswer, actualStr);
}
// TODO testSameValueDecimal tests
// TODO sameValueAs mixed tests
-
- @Test public void testSameValue1()
- {
- NodeValue nv1 = NodeValue.makeInteger(5) ;
- NodeValue nv2 = NodeValue.makeInteger(7) ;
- assertTrue("Same values ("+nv1+","+nv2+")", NodeValue.notSameAs(nv1, nv2)) ;
- assertFalse("Same values ("+nv1+","+nv2+")", NodeValue.sameAs(nv1, nv2)) ;
- NodeValue nv3 = NodeValue.makeInteger(5) ;
- assertTrue("Different values ("+nv1+","+nv3+")", NodeValue.sameAs(nv1, nv3)) ;
- assertFalse("Different values - notNotSame ("+nv1+","+nv3+")", NodeValue.notSameAs(nv1, nv3)) ;
+ @Test
+ public void testSameValue1() {
+ NodeValue nv1 = NodeValue.makeInteger(5);
+ NodeValue nv2 = NodeValue.makeInteger(7);
+ assertTrue("Same values (" + nv1 + "," + nv2 + ")", NodeValue.notSameAs(nv1, nv2));
+ assertFalse("Same values (" + nv1 + "," + nv2 + ")", NodeValue.sameAs(nv1, nv2));
+
+ NodeValue nv3 = NodeValue.makeInteger(5);
+ assertTrue("Different values (" + nv1 + "," + nv3 + ")", NodeValue.sameAs(nv1, nv3));
+ assertFalse("Different values - notNotSame (" + nv1 + "," + nv3 + ")", NodeValue.notSameAs(nv1, nv3));
+ }
+
+ @Test
+ public void testSameValue2() {
+ NodeValue nv1 = NodeValue.makeInteger(5);
+ NodeValue nv2 = NodeValue.makeNodeInteger(7);
+ assertTrue("Same values (" + nv1 + "," + nv2 + ")", NodeValue.notSameAs(nv1, nv2));
+ assertFalse("Same values (" + nv1 + "," + nv2 + ")", NodeValue.sameAs(nv1, nv2));
+
+ NodeValue nv3 = NodeValue.makeNodeInteger(5);
+ assertTrue("Different values (" + nv1 + "," + nv3 + ")", NodeValue.sameAs(nv1, nv3));
+ assertFalse("Different values - notNotSame (" + nv1 + "," + nv3 + ")", NodeValue.notSameAs(nv1, nv3));
+ }
+
+ @Test
+ public void testSameValue3() {
+ NodeValue nv1 = NodeValue.makeDecimal("1.5");
+ NodeValue nv2 = NodeValue.makeDecimal("1.6");
+ assertTrue("Same values (" + nv1 + "," + nv2 + ")", NodeValue.notSameAs(nv1, nv2));
+ assertFalse("Same values (" + nv1 + "," + nv2 + ")", NodeValue.sameAs(nv1, nv2));
+
+ NodeValue nv3 = NodeValue.makeDecimal("1.50");
+ assertTrue("Different values (" + nv1 + "," + nv3 + ")", NodeValue.sameAs(nv1, nv3));
+ assertFalse("Different values - notNotSame (" + nv1 + "," + nv3 + ")", NodeValue.notSameAs(nv1, nv3));
+ }
+
+ @Test
+ public void testSameValue4() {
+ NodeValue nv1 = NodeValue.makeDecimal("3");
+ NodeValue nv2 = NodeValue.makeInteger(4);
+ assertTrue("Same values (" + nv1 + "," + nv2 + ")", NodeValue.notSameAs(nv1, nv2));
+ assertFalse("Same values (" + nv1 + "," + nv2 + ")", NodeValue.sameAs(nv1, nv2));
+
+ NodeValue nv3 = NodeValue.makeInteger(3);
+ assertTrue("Different values (" + nv1 + "," + nv3 + ")", NodeValue.sameAs(nv1, nv3));
+ assertFalse("Different values - notNotSame (" + nv1 + "," + nv3 + ")", NodeValue.notSameAs(nv1, nv3));
+ }
+
+ @Test
+ public void testSameValue5() {
+ NodeValue nv1 = NodeValue.makeDecimal("-1.5"); // Must be exact for
+ // double and decimal
+ NodeValue nv2 = NodeValue.makeDouble(1.5);
+ assertTrue("Same values (" + nv1 + "," + nv2 + ")", NodeValue.notSameAs(nv1, nv2));
+ assertFalse("Same values (" + nv1 + "," + nv2 + ")", NodeValue.sameAs(nv1, nv2));
+
+ NodeValue nv3 = NodeValue.makeDouble(-1.5);
+ assertTrue("Different values (" + nv1 + "," + nv3 + ")", NodeValue.sameAs(nv1, nv3));
+ assertFalse("Different values - notNotSame (" + nv1 + "," + nv3 + ")", NodeValue.notSameAs(nv1, nv3));
}
-
- @Test public void testSameValue2()
- {
- NodeValue nv1 = NodeValue.makeInteger(5) ;
- NodeValue nv2 = NodeValue.makeNodeInteger(7) ;
- assertTrue("Same values ("+nv1+","+nv2+")", NodeValue.notSameAs(nv1, nv2)) ;
- assertFalse("Same values ("+nv1+","+nv2+")", NodeValue.sameAs(nv1, nv2)) ;
- NodeValue nv3 = NodeValue.makeNodeInteger(5) ;
- assertTrue("Different values ("+nv1+","+nv3+")", NodeValue.sameAs(nv1, nv3)) ;
- assertFalse("Different values - notNotSame ("+nv1+","+nv3+")", NodeValue.notSameAs(nv1, nv3)) ;
- }
-
- @Test public void testSameValue3()
- {
- NodeValue nv1 = NodeValue.makeDecimal("1.5") ;
- NodeValue nv2 = NodeValue.makeDecimal("1.6") ;
- assertTrue("Same values ("+nv1+","+nv2+")", NodeValue.notSameAs(nv1, nv2)) ;
- assertFalse("Same values ("+nv1+","+nv2+")", NodeValue.sameAs(nv1, nv2)) ;
+ @Test
+ public void testSameValue6() {
+ NodeValue nv1 = NodeValue.makeNodeInteger(17);
+ NodeValue nv2 = NodeValue.makeDouble(34);
+ assertTrue("Same values (" + nv1 + "," + nv2 + ")", NodeValue.notSameAs(nv1, nv2));
+ assertFalse("Same values (" + nv1 + "," + nv2 + ")", NodeValue.sameAs(nv1, nv2));
- NodeValue nv3 = NodeValue.makeDecimal("1.50") ;
- assertTrue("Different values ("+nv1+","+nv3+")", NodeValue.sameAs(nv1, nv3)) ;
- assertFalse("Different values - notNotSame ("+nv1+","+nv3+")", NodeValue.notSameAs(nv1, nv3)) ;
+ NodeValue nv3 = NodeValue.makeDouble(17);
+ assertTrue("Different values (" + nv1 + "," + nv3 + ")", NodeValue.sameAs(nv1, nv3));
+ assertFalse("Different values - notNotSame (" + nv1 + "," + nv3 + ")", NodeValue.notSameAs(nv1, nv3));
}
-
- @Test public void testSameValue4()
- {
- NodeValue nv1 = NodeValue.makeDecimal("3") ;
- NodeValue nv2 = NodeValue.makeInteger(4) ;
- assertTrue("Same values ("+nv1+","+nv2+")", NodeValue.notSameAs(nv1, nv2)) ;
- assertFalse("Same values ("+nv1+","+nv2+")", NodeValue.sameAs(nv1, nv2)) ;
- NodeValue nv3 = NodeValue.makeInteger(3) ;
- assertTrue("Different values ("+nv1+","+nv3+")", NodeValue.sameAs(nv1, nv3)) ;
- assertFalse("Different values - notNotSame ("+nv1+","+nv3+")", NodeValue.notSameAs(nv1, nv3)) ;
- }
-
- @Test public void testSameValue5()
- {
- NodeValue nv1 = NodeValue.makeDecimal("-1.5") ; // Must be exact for double and decimal
- NodeValue nv2 = NodeValue.makeDouble(1.5) ;
- assertTrue("Same values ("+nv1+","+nv2+")", NodeValue.notSameAs(nv1, nv2)) ;
- assertFalse("Same values ("+nv1+","+nv2+")", NodeValue.sameAs(nv1, nv2)) ;
+ @Test
+ public void testSameValue7() {
+ NodeValue nv1 = NodeValue.makeBoolean(true);
+ NodeValue nv2 = NodeValue.makeString("a");
+ assertTrue("Same values (" + nv1 + "," + nv2 + ")", NodeValue.notSameAs(nv1, nv2));
+ assertFalse("Same values (" + nv1 + "," + nv2 + ")", NodeValue.sameAs(nv1, nv2));
- NodeValue nv3 = NodeValue.makeDouble(-1.5) ;
- assertTrue("Different values ("+nv1+","+nv3+")", NodeValue.sameAs(nv1, nv3)) ;
- assertFalse("Different values - notNotSame ("+nv1+","+nv3+")", NodeValue.notSameAs(nv1, nv3)) ;
+ NodeValue nv3 = NodeValue.makeNodeBoolean(true);
+ assertTrue("Different values (" + nv1 + "," + nv3 + ")", NodeValue.sameAs(nv1, nv3));
+ assertFalse("Different values - notNotSame (" + nv1 + "," + nv3 + ")", NodeValue.notSameAs(nv1, nv3));
}
-
- @Test public void testSameValue6()
- {
- NodeValue nv1 = NodeValue.makeNodeInteger(17) ;
- NodeValue nv2 = NodeValue.makeDouble(34) ;
- assertTrue("Same values ("+nv1+","+nv2+")", NodeValue.notSameAs(nv1, nv2)) ;
- assertFalse("Same values ("+nv1+","+nv2+")", NodeValue.sameAs(nv1, nv2)) ;
- NodeValue nv3 = NodeValue.makeDouble(17) ;
- assertTrue("Different values ("+nv1+","+nv3+")", NodeValue.sameAs(nv1, nv3)) ;
- assertFalse("Different values - notNotSame ("+nv1+","+nv3+")", NodeValue.notSameAs(nv1, nv3)) ;
+ @Test
+ public void testLang1() {
+ Node n1 = org.apache.jena.graph.NodeFactory.createLiteral("xyz", "en");
+ NodeValue nv1 = NodeValue.makeNode(n1);
+ Node n2 = org.apache.jena.graph.NodeFactory.createLiteral("xyz", "en");
+ NodeValue nv2 = NodeValue.makeNode(n2);
+ assertTrue(NodeValue.sameAs(nv1, nv2));
}
-
- @Test public void testSameValue7()
- {
- NodeValue nv1 = NodeValue.makeBoolean(true) ;
- NodeValue nv2 = NodeValue.makeString("a") ;
- assertTrue("Same values ("+nv1+","+nv2+")", NodeValue.notSameAs(nv1, nv2)) ;
- assertFalse("Same values ("+nv1+","+nv2+")", NodeValue.sameAs(nv1, nv2)) ;
-
- NodeValue nv3 = NodeValue.makeNodeBoolean(true) ;
- assertTrue("Different values ("+nv1+","+nv3+")", NodeValue.sameAs(nv1, nv3)) ;
- assertFalse("Different values - notNotSame ("+nv1+","+nv3+")", NodeValue.notSameAs(nv1, nv3)) ;
+
+ @Test
+ public void testLang2() {
+ Node n1 = org.apache.jena.graph.NodeFactory.createLiteral("xyz", "en");
+ NodeValue nv1 = NodeValue.makeNode(n1);
+ Node n2 = org.apache.jena.graph.NodeFactory.createLiteral("xyz", "EN");
+ NodeValue nv2 = NodeValue.makeNode(n2);
+ assertTrue(NodeValue.sameAs(nv1, nv2));
+ assertFalse(nv1.equals(nv2));
}
-
- @Test public void testLang1()
- {
- Node n1 = org.apache.jena.graph.NodeFactory.createLiteral("xyz", "en") ;
- NodeValue nv1 = NodeValue.makeNode(n1) ;
- Node n2 = org.apache.jena.graph.NodeFactory.createLiteral("xyz", "en") ;
- NodeValue nv2 = NodeValue.makeNode(n2) ;
- assertTrue(NodeValue.sameAs(nv1, nv2)) ;
+
+ @Test
+ public void testLang3() {
+ Node n1 = org.apache.jena.graph.NodeFactory.createLiteral("xyz", "en");
+ NodeValue nv1 = NodeValue.makeNode(n1);
+ Node n2 = org.apache.jena.graph.NodeFactory.createLiteral("xyz", "en");
+ NodeValue nv2 = NodeValue.makeNode(n2);
+ assertFalse(NodeValue.notSameAs(nv1, nv2));
}
-
- @Test public void testLang2()
- {
- Node n1 = org.apache.jena.graph.NodeFactory.createLiteral("xyz", "en") ;
- NodeValue nv1 = NodeValue.makeNode(n1) ;
- Node n2 = org.apache.jena.graph.NodeFactory.createLiteral("xyz", "EN") ;
- NodeValue nv2 = NodeValue.makeNode(n2) ;
- assertTrue(NodeValue.sameAs(nv1, nv2)) ;
- assertFalse(nv1.equals(nv2)) ;
- }
-
- @Test public void testLang3()
- {
- Node n1 = org.apache.jena.graph.NodeFactory.createLiteral("xyz", "en") ;
- NodeValue nv1 = NodeValue.makeNode(n1) ;
- Node n2 = org.apache.jena.graph.NodeFactory.createLiteral("xyz", "en") ;
- NodeValue nv2 = NodeValue.makeNode(n2) ;
- assertFalse(NodeValue.notSameAs(nv1, nv2)) ;
+
+ @Test
+ public void testLang4() {
+ Node n1 = org.apache.jena.graph.NodeFactory.createLiteral("xyz", "en");
+ NodeValue nv1 = NodeValue.makeNode(n1);
+ Node n2 = org.apache.jena.graph.NodeFactory.createLiteral("xyz", "EN");
+ NodeValue nv2 = NodeValue.makeNode(n2);
+ assertFalse(NodeValue.notSameAs(nv1, nv2));
+ assertFalse(nv1.equals(nv2));
}
-
- @Test public void testLang4()
- {
- Node n1 = org.apache.jena.graph.NodeFactory.createLiteral("xyz", "en") ;
- NodeValue nv1 = NodeValue.makeNode(n1) ;
- Node n2 = org.apache.jena.graph.NodeFactory.createLiteral("xyz", "EN") ;
- NodeValue nv2 = NodeValue.makeNode(n2) ;
- assertFalse(NodeValue.notSameAs(nv1, nv2)) ;
- assertFalse(nv1.equals(nv2)) ;
- }
-
- @Test public void testEquals1()
- {
- NodeValue nv1 = NodeValue.makeInteger(1) ;
- NodeValue nv2 = NodeValue.makeInteger(1) ;
- assertEquals("Not NodeValue.equals()", nv1, nv2) ;
+
+ @Test
+ public void testEquals1() {
+ NodeValue nv1 = NodeValue.makeInteger(1);
+ NodeValue nv2 = NodeValue.makeInteger(1);
+ assertEquals("Not NodeValue.equals()", nv1, nv2);
}
-
- @Test public void testEquals2()
- {
- NodeValue nv1 = NodeValue.makeNodeInteger(1) ;
- NodeValue nv2 = NodeValue.makeInteger(1) ;
- assertEquals("Not NodeValue.equals()", nv1, nv2) ;
+
+ @Test
+ public void testEquals2() {
+ NodeValue nv1 = NodeValue.makeNodeInteger(1);
+ NodeValue nv2 = NodeValue.makeInteger(1);
+ assertEquals("Not NodeValue.equals()", nv1, nv2);
}
-
- @Test public void testEquals3()
- { // Make different ways but equals
- NodeValue nv1 = NodeValue.makeInteger(1) ;
- NodeValue nv2 = NodeValue.makeNodeInteger(1) ;
- assertEquals("Not NodeValue.equals()", nv1, nv2) ;
+
+ @Test
+ public void testEquals3() { // Make different ways but equals
+ NodeValue nv1 = NodeValue.makeInteger(1);
+ NodeValue nv2 = NodeValue.makeNodeInteger(1);
+ assertEquals("Not NodeValue.equals()", nv1, nv2);
}
-
- @Test public void testEquals4()
- {
- NodeValue nv1 = NodeValue.makeNode(org.apache.jena.graph.NodeFactory.createURI("http://example")) ;
- NodeValue nv2 = NodeValue.makeNode(org.apache.jena.graph.NodeFactory.createURI("http://example")) ;
- assertEquals("Not NodeValue.equals()", nv1 , nv2) ;
+
+ @Test
+ public void testEquals4() {
+ NodeValue nv1 = NodeValue.makeNode(org.apache.jena.graph.NodeFactory.createURI("http://example"));
+ NodeValue nv2 = NodeValue.makeNode(org.apache.jena.graph.NodeFactory.createURI("http://example"));
+ assertEquals("Not NodeValue.equals()", nv1, nv2);
}
-
- @Test public void testNotEquals1()
- {
- NodeValue nv1 = NodeValue.makeInteger(1) ;
- NodeValue nv2 = NodeValue.makeInteger(2) ;
- assertFalse("NodeValue.equals()", nv1.equals(nv2)) ;
+
+ @Test
+ public void testNotEquals1() {
+ NodeValue nv1 = NodeValue.makeInteger(1);
+ NodeValue nv2 = NodeValue.makeInteger(2);
+ assertFalse("NodeValue.equals()", nv1.equals(nv2));
}
-
- @Test public void testNotEquals2()
- {
- NodeValue nv1 = NodeValue.makeNodeInteger(1) ;
- NodeValue nv2 = NodeValue.makeNodeString("1") ;
- assertFalse("NodeValue.equals()", nv1.equals(nv2)) ;
+
+ @Test
+ public void testNotEquals2() {
+ NodeValue nv1 = NodeValue.makeNodeInteger(1);
+ NodeValue nv2 = NodeValue.makeNodeString("1");
+ assertFalse("NodeValue.equals()", nv1.equals(nv2));
}
-
- @Test public void testNotEquals3()
- { //Literals and URIs are different.
- NodeValue nv1 = NodeValue.makeNode(org.apache.jena.graph.NodeFactory.createURI("http://example")) ;
- NodeValue nv2 = NodeValue.makeNode(org.apache.jena.graph.NodeFactory.createLiteral("http://example")) ;
- assertFalse("NodeValue.equals()", nv1.equals(nv2)) ;
- }
+ @Test
+ public void testNotEquals3() { // Literals and URIs are different.
+ NodeValue nv1 = NodeValue.makeNode(org.apache.jena.graph.NodeFactory.createURI("http://example"));
+ NodeValue nv2 = NodeValue.makeNode(org.apache.jena.graph.NodeFactory.createLiteral("http://example"));
+ assertFalse("NodeValue.equals()", nv1.equals(nv2));
+ }
}