You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2015/03/17 12:21:46 UTC

[34/52] [abbrv] jena git commit: JENA-886 : Use datatypes from Jena datatypes.

JENA-886 : Use datatypes from Jena datatypes.

xsd:dateTimeStamp, xsd:yearMonthDuration, xsd:dayTimeDuration

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/ec5b5dad
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/ec5b5dad
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/ec5b5dad

Branch: refs/heads/JENA-507
Commit: ec5b5dad8a6d4da444b2525c6af061ee5196bbcd
Parents: 7663226
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Mar 8 17:31:19 2015 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Mar 8 17:31:19 2015 +0000

----------------------------------------------------------------------
 .../com/hp/hpl/jena/sparql/expr/NodeValue.java  | 89 ++++++++------------
 1 file changed, 33 insertions(+), 56 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/ec5b5dad/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java
index 1a16596..d08818f 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java
@@ -31,7 +31,7 @@ import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDgMonth ;
 import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDgMonthDay ;
 import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDgYear ;
 import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDgYearMonth ;
-import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDinteger ;
+import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.* ;
 import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDstring ;
 import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDtime ;
 import static com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.VSPACE_BOOLEAN ;
@@ -1035,16 +1035,11 @@ public abstract class NodeValue extends ExprNode
     }
 
     // Jena code does not have these types (yet)
-    private static final String dtXSDdateTimeStamp      = XSD+"#dateTimeStamp" ; 
-    private static final String dtXSDdayTimeDuration    = XSD+"#dayTimeDuration" ; 
-    private static final String dtXSDyearMonthDuration  = XSD+"#yearMonthDuration" ; 
     private static final String dtXSDprecisionDecimal   = XSD+"#precisionDecimal" ; 
     
     // Returns null for unrecognized literal.
-    private static NodeValue _setByValue(Node node)
-    {
+    private static NodeValue _setByValue(Node node) {
         if ( NodeUtils.hasLang(node) )
-            // Check for RDF 1.1!
             return null ;
         LiteralLabel lit = node.getLiteral() ;
         String lex = lit.getLexicalForm() ;
@@ -1054,8 +1049,7 @@ public abstract class NodeValue extends ExprNode
         // Only XSD supported.
         // And (for testing) roman numerals.
         String datatypeURI = datatype.getURI() ;
-        if ( ! datatypeURI.startsWith(xsdNamespace) && ! SystemARQ.EnableRomanNumerals )
-        {
+        if ( !datatypeURI.startsWith(xsdNamespace) && !SystemARQ.EnableRomanNumerals ) {
             // Not XSD.
             return null ;
         }
@@ -1076,8 +1070,7 @@ public abstract class NodeValue extends ExprNode
 
             // Order here is promotion order integer-decimal-float-double
             
-            if ( ! datatype.equals(XSDdecimal) ) 
-            {
+            if ( ! datatype.equals(XSDdecimal) ) {
                 // XSD integer and derived types 
                 if ( XSDinteger.isValidLiteral(lit) )
                 {
@@ -1092,93 +1085,77 @@ public abstract class NodeValue extends ExprNode
                 }
             }
             
-            if ( datatype.equals(XSDdecimal) && XSDdecimal.isValidLiteral(lit) )
-            {
+            if ( datatype.equals(XSDdecimal) && XSDdecimal.isValidLiteral(lit) ) {
                 BigDecimal decimal = new BigDecimal(lit.getLexicalForm()) ;
                 return new NodeValueDecimal(decimal, node) ;
             }
-            
-            if ( datatype.equals(XSDfloat) && XSDfloat.isValidLiteral(lit) )
-            {
+
+            if ( datatype.equals(XSDfloat) && XSDfloat.isValidLiteral(lit) ) {
                 // NB If needed, call to floatValue, then assign to double.
                 // Gets 1.3f != 1.3d right
                 float f = ((Number)lit.getValue()).floatValue() ;
                 return new NodeValueFloat(f, node) ;
             }
 
-            if ( datatype.equals(XSDdouble) && XSDdouble.isValidLiteral(lit) )
-            {
+            if ( datatype.equals(XSDdouble) && XSDdouble.isValidLiteral(lit) ) {
                 double d = ((Number)lit.getValue()).doubleValue() ;
                 return new NodeValueDouble(d, node) ;
             }
 
-            // XXX Pending Jena update ... 
-            if ( ( datatype.equals(XSDdateTime) || dtXSDdateTimeStamp.equals(datatypeURI) ) &&
-                    XSDdateTime.isValid(lex) ) 
-            {
+            if ( (datatype.equals(XSDdateTime) || datatype.equals(XSDdateTimeStamp)) && XSDdateTime.isValid(lex) ) {
                 XSDDateTime dateTime = (XSDDateTime)lit.getValue() ;
                 return new NodeValueDT(lex, node) ;
             }
-            
-            if ( datatype.equals(XSDdate) && XSDdate.isValidLiteral(lit) )
-            {
-                // Jena datatype support works on masked dataTimes. 
+
+            if ( datatype.equals(XSDdate) && XSDdate.isValidLiteral(lit) ) {
+                // Jena datatype support works on masked dataTimes.
                 XSDDateTime dateTime = (XSDDateTime)lit.getValue() ;
                 return new NodeValueDT(lex, node) ;
             }
-            
-            if ( datatype.equals(XSDtime) && XSDtime.isValidLiteral(lit) )
-            {
-                // Jena datatype support works on masked dataTimes. 
+
+            if ( datatype.equals(XSDtime) && XSDtime.isValidLiteral(lit) ) {
+                // Jena datatype support works on masked dataTimes.
                 XSDDateTime time = (XSDDateTime)lit.getValue() ;
                 return new NodeValueDT(lex, node) ;
             }
-            
-            if ( datatype.equals(XSDgYear) && XSDgYear.isValidLiteral(lit) )
-            {
+
+            if ( datatype.equals(XSDgYear) && XSDgYear.isValidLiteral(lit) ) {
                 XSDDateTime time = (XSDDateTime)lit.getValue() ;
                 return new NodeValueDT(lex, node) ;
             }
-            if ( datatype.equals(XSDgYearMonth) && XSDgYearMonth.isValidLiteral(lit) )
-            {
+            if ( datatype.equals(XSDgYearMonth) && XSDgYearMonth.isValidLiteral(lit) ) {
                 XSDDateTime time = (XSDDateTime)lit.getValue() ;
                 return new NodeValueDT(lex, node) ;
             }
-            if ( datatype.equals(XSDgMonth) && XSDgMonth.isValidLiteral(lit) )
-            {
+            if ( datatype.equals(XSDgMonth) && XSDgMonth.isValidLiteral(lit) ) {
                 XSDDateTime time = (XSDDateTime)lit.getValue() ;
                 return new NodeValueDT(lex, node) ;
             }
-            
-            if ( datatype.equals(XSDgMonthDay) && XSDgMonthDay.isValidLiteral(lit) )
-            {
+
+            if ( datatype.equals(XSDgMonthDay) && XSDgMonthDay.isValidLiteral(lit) ) {
                 XSDDateTime time = (XSDDateTime)lit.getValue() ;
                 return new NodeValueDT(lex, node) ;
             }
-            if ( datatype.equals(XSDgDay) && XSDgDay.isValidLiteral(lit) )
-            {
+            if ( datatype.equals(XSDgDay) && XSDgDay.isValidLiteral(lit) ) {
                 XSDDateTime time = (XSDDateTime)lit.getValue() ;
                 return new NodeValueDT(lex, node) ;
             }
+
+            if ( datatype.equals(XSDduration) && XSDduration.isValid(lex) ) {
+                Duration duration = xmlDatatypeFactory.newDuration(lex) ;
+                return new NodeValueDuration(duration, node) ;
+            }
             
-            // XXX Pending Jena update ... 
-            if ( ( datatype.equals(XSDduration) || 
-                   dtXSDdayTimeDuration.equals(datatypeURI) || 
-                   dtXSDyearMonthDuration.equals(datatypeURI) ) &&
-                   XSDduration.isValid(lex) ) // use lex
-            {
+            if ( datatype.equals(XSDyearMonthDuration) && XSDyearMonthDuration.isValid(lex) ) {
+                Duration duration = xmlDatatypeFactory.newDuration(lex) ;
+                return new NodeValueDuration(duration, node) ;
+            }
+            if ( datatype.equals(XSDdayTimeDuration) && XSDdayTimeDuration.isValid(lex) ) {
                 Duration duration = xmlDatatypeFactory.newDuration(lex) ;
-                
-                if ( dtXSDdayTimeDuration.equals(datatypeURI) && ! XSDFuncOp.isDayTime(duration) )
-                    return null ;
-                if ( dtXSDyearMonthDuration.equals(datatypeURI) && ! XSDFuncOp.isYearMonth(duration) )
-                    return null ;
-                
                 return new NodeValueDuration(duration, node) ;
             }
             
-            if ( datatype.equals(XSDboolean) && XSDboolean.isValidLiteral(lit) )
-            {
+            if ( datatype.equals(XSDboolean) && XSDboolean.isValidLiteral(lit) ) {
                 boolean b = (Boolean) lit.getValue();
                 return new NodeValueBoolean(b, node) ;
             }