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 2012/04/23 19:30:39 UTC

svn commit: r1329349 - in /incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql: serializer/SerializationContext.java util/FmtUtils.java

Author: rvesse
Date: Mon Apr 23 17:30:39 2012
New Revision: 1329349

URL: http://svn.apache.org/viewvc?rev=1329349&view=rev
Log:
Minor tweak to allow SerializationContext to indicate whether it would like plain literal forms to be used
Modified FmtUtils to respect this new setting while preserving backwards compatibility with old behaviour (setting defaults to true and null context caused plain literal forms to be used where applicable)

Modified:
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/serializer/SerializationContext.java
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/util/FmtUtils.java

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/serializer/SerializationContext.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/serializer/SerializationContext.java?rev=1329349&r1=1329348&r2=1329349&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/serializer/SerializationContext.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/serializer/SerializationContext.java Mon Apr 23 17:30:39 2012
@@ -30,6 +30,7 @@ public class SerializationContext
     
     private Prologue prologue ;
     private NodeToLabelMap bNodeMap ;
+    private boolean usePlainLiterals = true;
     
     public SerializationContext(SerializationContext cxt)
     {
@@ -68,6 +69,34 @@ public class SerializationContext
             bNodeMap = new NodeToLabelMap("b", false) ;
     }
     
+    public SerializationContext(boolean usePlainLiterals)
+    {
+    	this((Prologue)null, null, usePlainLiterals);
+    }
+    
+    public SerializationContext(PrefixMapping prefixMap, boolean usePlainLiterals)
+    {
+    	this(new Prologue(prefixMap), null);
+    	this.usePlainLiterals = usePlainLiterals;
+    }
+    
+    public SerializationContext(PrefixMapping prefixMap, NodeToLabelMap bMap, boolean usePlainLiterals)
+    {
+    	this(new Prologue(prefixMap), bMap);
+    	this.usePlainLiterals = usePlainLiterals;
+    }
+    
+    public SerializationContext(Prologue prologue, boolean usePlainLiterals)
+    {
+    	this(prologue, null, usePlainLiterals);
+    }
+    
+    public SerializationContext(Prologue prologue, NodeToLabelMap bMap, boolean usePlainLiterals)
+    {
+    	this(prologue, bMap);
+    	this.usePlainLiterals = usePlainLiterals;
+    }
+    
     /**
      * @return Returns the bNodeMap.
      */
@@ -105,9 +134,24 @@ public class SerializationContext
     
     public String getBaseIRI() { return prologue.getBaseURI() ; }
 
-    
     public Prologue getPrologue()
     {
         return prologue ;
     }
+    
+    /**
+     * Gets whether Plain Literal forms should be used for appropriate typed literals (booleans, integers, decimals and doubles)
+     */
+    public boolean getUsePlainLiterals()
+    {
+    	return usePlainLiterals;
+    }
+    
+    /**
+     * Sets whether Plain Literal forms should be used for appropriate typed literals (booleans, integers, decimals and doubles)
+     */
+    public void setUsePlainLiterals(boolean usePlainLiterals)
+    {
+    	this.usePlainLiterals = usePlainLiterals;
+    }
 }

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/util/FmtUtils.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/util/FmtUtils.java?rev=1329349&r1=1329348&r2=1329349&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/util/FmtUtils.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/util/FmtUtils.java Mon Apr 23 17:30:39 2012
@@ -216,7 +216,11 @@ public class FmtUtils
         String lang = literal.getLiteralLanguage() ;
         String s = literal.getLiteralLexicalForm() ;
         
-        if ( datatype != null )
+        //For some literals we can use plain literal form unless the Serialization Context
+        //explicitly says not to
+        //For backwards compatibility if using a null context then we use plain literal
+        //forms where possible as this was the existing behaviour prior to this addition to the API
+        if ( datatype != null && (context == null || context.getUsePlainLiterals()))
         {
             // Special form we know how to handle?
             // Assume valid text