From: <lh...@us...> - 2011-01-10 08:11:51
|
Revision: 417 http://tinytim.svn.sourceforge.net/tinytim/?rev=417&view=rev Author: lheuer Date: 2011-01-10 08:11:45 +0000 (Mon, 10 Jan 2011) Log Message: ----------- Fixed normaization of xsd:decimals Modified Paths: -------------- tinytim/trunk/CHANGES.txt tinytim/trunk/src/main/java/org/tinytim/core/value/LiteralNormalizer.java tinytim/trunk/src/test/java/org/tinytim/core/value/TestLiteralNormalizer.java Modified: tinytim/trunk/CHANGES.txt =================================================================== --- tinytim/trunk/CHANGES.txt 2010-11-06 10:07:21 UTC (rev 416) +++ tinytim/trunk/CHANGES.txt 2011-01-10 08:11:45 UTC (rev 417) @@ -2,7 +2,7 @@ Changes Log =========== -2.0.1 (2010-mm-dd) +2.0.1 (2011-mm-dd) ------------------ * tinyTiM is forward-compatible to TMAPI 2.0.3 * OSGi bundle exports the .voc package @@ -11,6 +11,8 @@ (caused heap memory problems and fixes a bug reported by Uta Schulze) * Locator: Resolving a reference with white spaces caused problems. Fixed. (reported by Uta Schulze) +* The lexical representation of decimals like "-.3" was interpreted as "+0.3". + Fixed. Modified: tinytim/trunk/src/main/java/org/tinytim/core/value/LiteralNormalizer.java =================================================================== --- tinytim/trunk/src/main/java/org/tinytim/core/value/LiteralNormalizer.java 2010-11-06 10:07:21 UTC (rev 416) +++ tinytim/trunk/src/main/java/org/tinytim/core/value/LiteralNormalizer.java 2011-01-10 08:11:45 UTC (rev 417) @@ -144,6 +144,9 @@ } if (len <= idx) { normalized.append('0'); + if (normalized.charAt(0) == '0') { + return "0.0"; + } } else { // idx points to the '.', increment it @@ -157,7 +160,7 @@ idx++; } } - return negative && normalized.charAt(0) != '0' ? '-' + normalized.toString() : normalized.toString(); + return negative ? '-' + normalized.toString() : normalized.toString(); } } Modified: tinytim/trunk/src/test/java/org/tinytim/core/value/TestLiteralNormalizer.java =================================================================== --- tinytim/trunk/src/test/java/org/tinytim/core/value/TestLiteralNormalizer.java 2010-11-06 10:07:21 UTC (rev 416) +++ tinytim/trunk/src/test/java/org/tinytim/core/value/TestLiteralNormalizer.java 2011-01-10 08:11:45 UTC (rev 417) @@ -62,6 +62,9 @@ assertEquals("0.0", LiteralNormalizer.normalizeDecimal("-0")); assertEquals("0.0", LiteralNormalizer.normalizeDecimal("-0.0")); assertEquals("0.0", LiteralNormalizer.normalizeDecimal("+0.0")); + assertEquals("-0.3", LiteralNormalizer.normalizeDecimal("-.3")); + assertEquals("0.3", LiteralNormalizer.normalizeDecimal("+.3")); + assertEquals("-0.03", LiteralNormalizer.normalizeDecimal("-.03")); assertEquals("0.0", LiteralNormalizer.normalizeDecimal("+00000.0000000")); assertEquals("0.0", LiteralNormalizer.normalizeDecimal("-00000.0000000")); assertEquals("10.0", LiteralNormalizer.normalizeDecimal("10")); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |