diff --git a/README.md b/README.md
index ff40e17..3775c73 100644
--- a/README.md
+++ b/README.md
@@ -302,7 +302,7 @@ One of `LATIN1`, `UTF_16_BE`, `UTF_16_LE`, `UTF_8`, `UTF_8_BOM`
-A [NumberFormat](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/NumberFormat.html) that describes how `xsd:double` literals are formatted
+A [NumberFormat](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/NumberFormat.html) that describes how `xsd:double` literals are formatted if `enableDoubleFormatting` is `true`.
|
@@ -314,12 +314,12 @@ A [NumberFormat](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/ja
|
-`skipDoubleFormatting`
+`enableDoubleFormatting`
|
-Allows for suppressing double formatting
+Enables formatting of `xsd:double` values (see `doubleFormat` option)
|
diff --git a/src/main/java/de/atextor/turtle/formatter/FormattingStyle.java b/src/main/java/de/atextor/turtle/formatter/FormattingStyle.java
index 3ed5e3d..195ef94 100644
--- a/src/main/java/de/atextor/turtle/formatter/FormattingStyle.java
+++ b/src/main/java/de/atextor/turtle/formatter/FormattingStyle.java
@@ -107,7 +107,7 @@ public class FormattingStyle {
public NumberFormat doubleFormat = new DecimalFormat("0.####E0" , DecimalFormatSymbols.getInstance(Locale.US));
@Builder.Default
- public boolean skipDoubleFormatting = true;
+ public boolean enableDoubleFormatting = false;
@Builder.Default
public EndOfLineStyle endOfLine = EndOfLineStyle.LF;
diff --git a/src/main/java/de/atextor/turtle/formatter/TurtleFormatter.java b/src/main/java/de/atextor/turtle/formatter/TurtleFormatter.java
index e9d2dd3..acdb54f 100644
--- a/src/main/java/de/atextor/turtle/formatter/TurtleFormatter.java
+++ b/src/main/java/de/atextor/turtle/formatter/TurtleFormatter.java
@@ -626,8 +626,12 @@ private State writeUriResource( final Resource resource, final State state ) {
private State writeLiteral( final Literal literal, final State state ) {
String datatypeUri = literal.getDatatypeURI();
- if (style.skipDoubleFormatting && datatypeUri.equals(XSD.xdouble.getURI())){
+ if (datatypeUri.equals(XSD.xdouble.getURI())) {
+ if (style.enableDoubleFormatting){
+ return state.write(style.doubleFormat.format(literal.getDouble()));
+ } else {
return state.write(literal.getLexicalForm());
+ }
} else {
if (datatypeUri.equals(XSD.xboolean.getURI())) {
return state.write(literal.getBoolean() ? "true" : "false");
@@ -641,9 +645,6 @@ private State writeLiteral( final Literal literal, final State state ) {
if (datatypeUri.equals(XSD.integer.getURI())) {
return state.write(literal.getValue().toString());
}
- if (datatypeUri.equals(XSD.xdouble.getURI())) {
- return state.write(style.doubleFormat.format(literal.getDouble()));
- }
if (datatypeUri.equals(RDF.langString.getURI())) {
return state.write(quoteAndEscape(literal) + "@" + literal.getLanguage());
}
diff --git a/src/test/java/de/atextor/turtle/formatter/TurtleFormatterTest.java b/src/test/java/de/atextor/turtle/formatter/TurtleFormatterTest.java
index cb3d7f0..f3ce6f8 100644
--- a/src/test/java/de/atextor/turtle/formatter/TurtleFormatterTest.java
+++ b/src/test/java/de/atextor/turtle/formatter/TurtleFormatterTest.java
@@ -6,7 +6,6 @@
import org.apache.jena.rdf.model.RDFNode;
import org.apache.jena.rdf.model.Resource;
import org.apache.jena.rdf.model.Statement;
-import org.apache.jena.rdf.model.impl.PropertyImpl;
import org.apache.jena.vocabulary.RDF;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
@@ -1020,7 +1019,7 @@ void testBlankNodeTriangleWithBlankNodeTriple(){
}
@Test
- public void testSkipFormattingValueOfPredicate() {
+ public void testEnableDoubleFormatting() {
final String modelString = """
@prefix xsd: .
@prefix ex: .
@@ -1028,7 +1027,7 @@ public void testSkipFormattingValueOfPredicate() {
ex:something ex:decimalProp 0.0000000006241509074460762607776240980930446 ;
ex:doubleProp 6.241509074460762607776240980930446E-10 .""";
- final FormattingStyle style = FormattingStyle.builder().skipDoubleFormatting(true).build();
+ final FormattingStyle style = FormattingStyle.builder().enableDoubleFormatting(false).build();
final TurtleFormatter formatter = new TurtleFormatter( style );
final String result = formatter.applyToContent( modelString );
@@ -1036,7 +1035,7 @@ public void testSkipFormattingValueOfPredicate() {
}
@Test
- public void testDoubleFormatDefault() {
+ public void testDoubleFormattingDefault() {
final String modelString = """
@prefix xsd: .
@prefix ex: .
@@ -1052,7 +1051,7 @@ public void testDoubleFormatDefault() {
}
@Test
- public void testDoubleFormat() {
+ public void testDisableDoubleFormatting() {
final String modelString = """
@prefix xsd: .
@prefix ex: .
@@ -1060,7 +1059,7 @@ public void testDoubleFormat() {
ex:something ex:decimalProp 0.0000000006241509074460762607776240980930446 ;
ex:doubleProp 6.2415E-10 .""";
- final FormattingStyle style = FormattingStyle.builder().skipDoubleFormatting(false).build();
+ final FormattingStyle style = FormattingStyle.builder().enableDoubleFormatting(true).build();
final TurtleFormatter formatter = new TurtleFormatter( style );
final String result = formatter.applyToContent( modelString );
|