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 2014/06/20 11:57:51 UTC

svn commit: r1604120 - in /jena/trunk/jena-tdb/src: main/java/com/hp/hpl/jena/tdb/store/NodeId.java test/java/com/hp/hpl/jena/tdb/store/TestNodeId.java

Author: andy
Date: Fri Jun 20 09:57:51 2014
New Revision: 1604120

URL: http://svn.apache.org/r1604120
Log:
JENA-720 - Avoid engineering notation when recovering xsd:decimal values.

Modified:
    jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/NodeId.java
    jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestNodeId.java

Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/NodeId.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/NodeId.java?rev=1604120&r1=1604119&r2=1604120&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/NodeId.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/NodeId.java Fri Jun 20 09:57:51 2014
@@ -291,45 +291,40 @@ public class NodeId
         long v = nodeId.value ;
         int type = nodeId.type() ;
 
-        switch (type)
-        {
+        switch (type) {
             case NONE:      return null ;
             case SPECIAL:   return null ;
                 
-            case INTEGER:
-            {
+            case INTEGER : {
                 long val = IntegerNode.unpack(v) ;
                 Node n = NodeFactory.createLiteral(Long.toString(val), null, XSDDatatype.XSDinteger) ;
                 return n ;
             }
-            case DECIMAL:
-            {
+            case DECIMAL : {
                 BigDecimal d = DecimalNode.unpackAsBigDecimal(v) ;
-                String x = d.toEngineeringString() ;
+                String x = d.toPlainString() ;
                 return NodeFactory.createLiteral(x, null, XSDDatatype.XSDdecimal) ;
             }
-
-            case DATETIME:
-            {
+            case DATETIME : {
                 long val = BitsLong.clear(v, 56, 64) ;
-                String lex = DateTimeNode.unpackDateTime(val) ; 
+                String lex = DateTimeNode.unpackDateTime(val) ;
                 return NodeFactory.createLiteral(lex, null, XSDDatatype.XSDdateTime) ;
             }
-            case DATE:
-            {
+            case DATE : {
                 long val = BitsLong.clear(v, 56, 64) ;
                 String lex = DateTimeNode.unpackDate(val) ;
                 return NodeFactory.createLiteral(lex, null, XSDDatatype.XSDdate) ;
             }
-            case BOOLEAN:
-            {
+            case BOOLEAN : {
                 long val = BitsLong.clear(v, 56, 64) ;
-                if ( val == 0 ) return NodeConst.nodeFalse ; 
-                if ( val == 1 ) return NodeConst.nodeTrue ;
-                throw new TDBException("Unrecognized boolean node id : "+val) ;
+                if ( val == 0 )
+                    return NodeConst.nodeFalse ;
+                if ( val == 1 )
+                    return NodeConst.nodeTrue ;
+                throw new TDBException("Unrecognized boolean node id : " + val) ;
             }
-            default:
-                throw new TDBException("Unrecognized node id type: "+type) ;
+            default :
+                throw new TDBException("Unrecognized node id type: " + type) ;
         }
     }
     

Modified: jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestNodeId.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestNodeId.java?rev=1604120&r1=1604119&r2=1604120&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestNodeId.java (original)
+++ jena/trunk/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestNodeId.java Fri Jun 20 09:57:51 2014
@@ -23,6 +23,7 @@ import org.junit.Test ;
 
 import com.hp.hpl.jena.datatypes.xsd.XSDDatatype ;
 import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.graph.NodeFactory ;
 import com.hp.hpl.jena.sparql.expr.NodeValue ;
 import com.hp.hpl.jena.sparql.util.NodeFactoryExtra ;
 
@@ -105,7 +106,7 @@ public class TestNodeId extends BaseTest
     
     // Just this once, directly create the Node.
     @Test public void nodeId_decimal_3()
-    { test("12.89", com.hp.hpl.jena.graph.NodeFactory.createLiteral("12.89", null, XSDDatatype.XSDdecimal)) ; }
+    { test("12.89", NodeFactory.createLiteral("12.89", null, XSDDatatype.XSDdecimal)) ; }
 
     @Test public void nodeId_decimal_4()
     { test("-1.0",  NodeFactoryExtra.parseNode("-1.0")) ; }
@@ -118,7 +119,14 @@ public class TestNodeId extends BaseTest
     @Test public void nodeId_decimal_6()
     { test("-2412.80478192688",  (Node)null) ; }
 
-    
+    @Test public void nodeId_decimal_7()
+    { test("'0.00000001'^^xsd:decimal",  
+           NodeFactory.createLiteral("0.00000001", null, XSDDatatype.XSDdecimal)) ; 
+    }
+
+    @Test public void nodeId_decimal_8()
+    { test("0.00000001", NodeFactory.createLiteral("0.00000001", null, XSDDatatype.XSDdecimal)) ; }
+
     @Test public void nodeId_dateTime_01()
     { test("'2008-04-28T15:36:15+01:00'^^xsd:dateTime") ; }