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 2014/09/17 12:04:10 UTC

svn commit: r1625498 - in /jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena: query/ sparql/modify/request/ sparql/serializer/ update/

Author: rvesse
Date: Wed Sep 17 10:04:10 2014
New Revision: 1625498

URL: http://svn.apache.org/r1625498
Log:
Provide a registry for query and update serializers

This commit introduces a registry for query and update serializers that allows
users to register serializers for custom syntaxes which allows extended syntaxes
not understood by ARQ to be printed.  With the current API the serialization of
queries and updates is hard coded to use the ARQ serialization.  When no appropriate
serializer is registered the code falls back to the old hard coded behaviour.



Added:
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateSerializer.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/QuerySerializerFactory.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/SerializerRegistry.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/UpdateSerializerFactory.java
Modified:
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/Query.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateWriter.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateWriterVisitor.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/update/UpdateRequest.java

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/Query.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/Query.java?rev=1625498&r1=1625497&r2=1625498&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/Query.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/Query.java Wed Sep 17 10:04:10 2014
@@ -41,7 +41,10 @@ import com.hp.hpl.jena.sparql.expr.Expr 
 import com.hp.hpl.jena.sparql.expr.ExprAggregator ;
 import com.hp.hpl.jena.sparql.expr.ExprVar ;
 import com.hp.hpl.jena.sparql.expr.aggregate.Aggregator ;
+import com.hp.hpl.jena.sparql.serializer.QuerySerializer;
+import com.hp.hpl.jena.sparql.serializer.QuerySerializerFactory;
 import com.hp.hpl.jena.sparql.serializer.Serializer ;
+import com.hp.hpl.jena.sparql.serializer.SerializerRegistry;
 import com.hp.hpl.jena.sparql.syntax.Element ;
 import com.hp.hpl.jena.sparql.syntax.PatternVars ;
 import com.hp.hpl.jena.sparql.syntax.Template ;
@@ -825,7 +828,7 @@ public class Query extends Prologue impl
     /** Output the query
      * @param out  OutputStream
      */
-    public void serialize(OutputStream out) { Serializer.serialize(this, out) ; }
+    public void serialize(OutputStream out) { serialize(out, syntax); }
     
     /** Output the query
      * 
@@ -833,14 +836,21 @@ public class Query extends Prologue impl
      * @param syntax  Syntax URI
      */
     
-    public void serialize(OutputStream out, Syntax syntax) { Serializer.serialize(this, out, syntax) ; }
+    public void serialize(OutputStream out, Syntax syntax) { 
+        IndentedWriter writer = new IndentedWriter(out) ;
+        serialize(writer, syntax) ;
+        writer.flush() ;
+        try { out.flush() ; } catch (Exception ex) { } 
+    }
 
     /** Format the query into the buffer
      * 
      * @param buff    IndentedLineBuffer
      */
     
-    public void serialize(IndentedLineBuffer buff) { Serializer.serialize(this, buff) ; }
+    public void serialize(IndentedLineBuffer buff) { 
+        serialize(buff, syntax); 
+    }
     
     /** Format the query
      * 
@@ -848,14 +858,18 @@ public class Query extends Prologue impl
      * @param outSyntax  Syntax URI
      */
     
-    public void serialize(IndentedLineBuffer buff, Syntax outSyntax) { Serializer.serialize(this, buff, outSyntax) ; }
+    public void serialize(IndentedLineBuffer buff, Syntax outSyntax) { 
+        serialize((IndentedWriter)buff, outSyntax);
+    }
 
     /** Format the query
      * 
      * @param writer  IndentedWriter
      */
     
-    public void serialize(IndentedWriter writer) { Serializer.serialize(this, writer) ; }
+    public void serialize(IndentedWriter writer) { 
+        serialize(writer, syntax); 
+    }
 
     /** Format the query
      * 
@@ -865,6 +879,14 @@ public class Query extends Prologue impl
     
     public void serialize(IndentedWriter writer, Syntax outSyntax)
     {
-        Serializer.serialize(this, writer, outSyntax) ;
+        // Try to use a serializer factory if available
+        QuerySerializerFactory factory = SerializerRegistry.get().getQuerySerializerFactory(outSyntax);
+        if (factory != null) {
+            QueryVisitor serializer = factory.create(outSyntax, this, writer);
+            this.visit(serializer);
+        } else {
+            // Otherwise fall back to old default behaviour
+            Serializer.serialize(this, writer, outSyntax) ;
+        }
     }
 }

Added: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateSerializer.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateSerializer.java?rev=1625498&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateSerializer.java (added)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateSerializer.java Wed Sep 17 10:04:10 2014
@@ -0,0 +1,40 @@
+package com.hp.hpl.jena.sparql.modify.request;
+
+import java.util.Iterator;
+
+import org.apache.jena.atlas.lib.Closeable;
+
+import com.hp.hpl.jena.update.Update;
+
+public interface UpdateSerializer extends Closeable {
+
+    /**
+     * Must be called prior to passing updates to the serializer
+     */
+    public abstract void open();
+
+    /**
+     * Serializes the given update
+     * 
+     * @param update
+     *            Update
+     */
+    public abstract void update(Update update);
+
+    /**
+     * Serializes a sequence of updates
+     * 
+     * @param updates
+     *            Updates
+     */
+    public abstract void update(Iterable<? extends Update> updates);
+
+    /**
+     * Serializes a sequence of updates
+     * 
+     * @param updates
+     *            Updates
+     */
+    public abstract void update(Iterator<? extends Update> updateIter);
+
+}
\ No newline at end of file

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateWriter.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateWriter.java?rev=1625498&r1=1625497&r2=1625498&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateWriter.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateWriter.java Wed Sep 17 10:04:10 2014
@@ -21,7 +21,6 @@ package com.hp.hpl.jena.sparql.modify.re
 import java.util.Iterator ;
 
 import org.apache.jena.atlas.io.IndentedWriter ;
-import org.apache.jena.atlas.lib.Closeable ;
 import org.apache.jena.riot.system.IRIResolver ;
 
 import com.hp.hpl.jena.graph.Node ;
@@ -35,7 +34,7 @@ import com.hp.hpl.jena.sparql.util.NodeT
 import com.hp.hpl.jena.update.Update ;
 import com.hp.hpl.jena.update.UpdateRequest ;
 
-public class UpdateWriter implements Closeable
+public class UpdateWriter implements UpdateSerializer
 {
     private final IndentedWriter out;
     private final SerializationContext sCxt;
@@ -62,6 +61,10 @@ public class UpdateWriter implements Clo
         this.sCxt = sCxt;
     }
     
+    /* (non-Javadoc)
+     * @see com.hp.hpl.jena.sparql.modify.request.UpdateSerializer#open()
+     */
+    @Override
     public void open()
     {
         if (null != sCxt)
@@ -169,6 +172,10 @@ public class UpdateWriter implements Clo
         }
     }
     
+    /* (non-Javadoc)
+     * @see com.hp.hpl.jena.sparql.modify.request.UpdateSerializer#update(com.hp.hpl.jena.update.Update)
+     */
+    @Override
     public void update(Update update)
     {
         checkOpen();
@@ -196,11 +203,19 @@ public class UpdateWriter implements Clo
         return new UpdateWriterVisitor(out, sCxt);
     }
     
+    /* (non-Javadoc)
+     * @see com.hp.hpl.jena.sparql.modify.request.UpdateSerializer#update(java.lang.Iterable)
+     */
+    @Override
     public void update(Iterable<? extends Update> updates)
     {
         update(updates.iterator());
     }
     
+    /* (non-Javadoc)
+     * @see com.hp.hpl.jena.sparql.modify.request.UpdateSerializer#update(java.util.Iterator)
+     */
+    @Override
     public void update(Iterator<? extends Update> updateIter)
     {
         while (updateIter.hasNext())
@@ -214,6 +229,9 @@ public class UpdateWriter implements Clo
         out.flush();
     }
     
+    /* (non-Javadoc)
+     * @see com.hp.hpl.jena.sparql.modify.request.UpdateSerializer#close()
+     */
     @Override
     public void close()
     {

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateWriterVisitor.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateWriterVisitor.java?rev=1625498&r1=1625497&r2=1625498&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateWriterVisitor.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateWriterVisitor.java Wed Sep 17 10:04:10 2014
@@ -16,12 +16,13 @@ import com.hp.hpl.jena.sparql.serializer
 import com.hp.hpl.jena.sparql.syntax.Element;
 import com.hp.hpl.jena.sparql.util.FmtUtils;
 
-// newline policy - don't add until needed.
-class UpdateWriterVisitor implements UpdateVisitor
+public class UpdateWriterVisitor implements UpdateVisitor
 {
     protected static final int BLOCK_INDENT = 2 ;
     protected final IndentedWriter out ;
     protected final SerializationContext sCxt ;
+    
+    // TODO newline policy - don't add until needed.
 
     public UpdateWriterVisitor(IndentedWriter out, SerializationContext sCxt)
     {

Added: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/QuerySerializerFactory.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/QuerySerializerFactory.java?rev=1625498&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/QuerySerializerFactory.java (added)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/QuerySerializerFactory.java Wed Sep 17 10:04:10 2014
@@ -0,0 +1,24 @@
+package com.hp.hpl.jena.sparql.serializer;
+
+import org.apache.jena.atlas.io.IndentedWriter;
+
+import com.hp.hpl.jena.query.QueryVisitor;
+import com.hp.hpl.jena.query.Syntax;
+import com.hp.hpl.jena.sparql.core.Prologue;
+
+/**
+ * Interface for query serializer factories
+ *
+ */
+public interface QuerySerializerFactory {
+
+    /**
+     * Return true if this factory can create a serializer for the given syntax
+     */
+    public boolean accept(Syntax syntax);
+
+    /**
+     * Return a serializer for the given syntax
+     */
+    public QueryVisitor create(Syntax syntax, Prologue prologue, IndentedWriter writer);
+}

Added: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/SerializerRegistry.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/SerializerRegistry.java?rev=1625498&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/SerializerRegistry.java (added)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/SerializerRegistry.java Wed Sep 17 10:04:10 2014
@@ -0,0 +1,127 @@
+package com.hp.hpl.jena.sparql.serializer;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.jena.atlas.io.IndentedWriter;
+import org.apache.jena.riot.system.IRIResolver;
+
+import com.hp.hpl.jena.query.QueryVisitor;
+import com.hp.hpl.jena.query.Syntax;
+import com.hp.hpl.jena.sparql.core.Prologue;
+import com.hp.hpl.jena.sparql.modify.request.UpdateSerializer;
+import com.hp.hpl.jena.sparql.modify.request.UpdateWriter;
+import com.hp.hpl.jena.sparql.util.NodeToLabelMapBNode;
+
+/**
+ * Provides a registry of serializers for queries and updates
+ * 
+ */
+public class SerializerRegistry {
+
+    private Map<Syntax, QuerySerializerFactory> querySerializers = new HashMap<>();
+    private Map<Syntax, UpdateSerializerFactory> updateSerializers = new HashMap<>();
+
+    private SerializerRegistry() {
+    }
+
+    private static SerializerRegistry registry;
+
+    private static synchronized void init() {
+        SerializerRegistry reg = new SerializerRegistry();
+
+        // Register standard serializers
+        QuerySerializerFactory arqQuerySerializerFactory = new QuerySerializerFactory() {
+
+            @Override
+            public QueryVisitor create(Syntax syntax, Prologue prologue, IndentedWriter writer) {
+                // For the query pattern
+                SerializationContext cxt1 = new SerializationContext(prologue, new NodeToLabelMapBNode("b", false));
+                // For the construct pattern
+                SerializationContext cxt2 = new SerializationContext(prologue, new NodeToLabelMapBNode("c", false));
+
+                return new QuerySerializer(writer, new FormatterElement(writer, cxt1), new FmtExprSPARQL(writer, cxt1),
+                        new FmtTemplate(writer, cxt2));
+            }
+
+            @Override
+            public boolean accept(Syntax syntax) {
+                // Since ARQ syntax is a super set of SPARQL 1.1 both SPARQL 1.0
+                // and SPARQL 1.1 can be serialized by the same serializer
+                return Syntax.syntaxARQ.equals(syntax) || Syntax.syntaxSPARQL_10.equals(syntax)
+                        || Syntax.syntaxSPARQL_11.equals(syntax);
+            }
+        };
+        reg.addQuerySerializer(Syntax.syntaxARQ, arqQuerySerializerFactory);
+        reg.addQuerySerializer(Syntax.syntaxSPARQL_10, arqQuerySerializerFactory);
+        reg.addQuerySerializer(Syntax.syntaxSPARQL_11, arqQuerySerializerFactory);
+
+        UpdateSerializerFactory arqUpdateSerializerFactory = new UpdateSerializerFactory() {
+
+            @Override
+            public UpdateSerializer create(Syntax syntax, Prologue prologue, IndentedWriter writer) {
+                if ( ! prologue.explicitlySetBaseURI() )
+                    prologue = new Prologue(prologue.getPrefixMapping(), (IRIResolver)null) ;
+                
+                SerializationContext context = new SerializationContext(prologue);
+                return new UpdateWriter(writer, context);
+            }
+
+            @Override
+            public boolean accept(Syntax syntax) {
+                // Since ARQ syntax is a super set of SPARQL 1.1 both SPARQL 1.0
+                // and SPARQL 1.1 can be serialized by the same serializer
+                return Syntax.syntaxARQ.equals(syntax) || Syntax.syntaxSPARQL_10.equals(syntax)
+                        || Syntax.syntaxSPARQL_11.equals(syntax);
+            }
+        };
+        reg.addUpdateSerializer(Syntax.syntaxARQ, arqUpdateSerializerFactory);
+        reg.addUpdateSerializer(Syntax.syntaxSPARQL_10, arqUpdateSerializerFactory);
+        reg.addUpdateSerializer(Syntax.syntaxSPARQL_11, arqUpdateSerializerFactory);
+
+        registry = reg;
+    }
+
+    public static SerializerRegistry get() {
+        if (registry == null)
+            init();
+
+        return registry;
+    }
+
+    public void addQuerySerializer(Syntax syntax, QuerySerializerFactory factory) {
+        if (!factory.accept(syntax))
+            throw new IllegalArgumentException("Factory does not accept the specified syntax");
+        querySerializers.put(syntax, factory);
+    }
+
+    public void addUpdateSerializer(Syntax syntax, UpdateSerializerFactory factory) {
+        if (!factory.accept(syntax))
+            throw new IllegalArgumentException("Factory does not accept the specified syntax");
+        updateSerializers.put(syntax, factory);
+    }
+
+    public boolean containsQuerySerializer(Syntax syntax) {
+        return querySerializers.containsKey(syntax);
+    }
+
+    public boolean containsUpdateSerializer(Syntax syntax) {
+        return updateSerializers.containsKey(syntax);
+    }
+
+    public QuerySerializerFactory getQuerySerializerFactory(Syntax syntax) {
+        return querySerializers.get(syntax);
+    }
+
+    public UpdateSerializerFactory getUpdateSerializerFactory(Syntax syntax) {
+        return updateSerializers.get(syntax);
+    }
+
+    public void removeQuerySerializer(Syntax syntax) {
+        querySerializers.remove(syntax);
+    }
+
+    public void removeUpdateSerializer(Syntax syntax) {
+        updateSerializers.remove(syntax);
+    }
+}

Added: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/UpdateSerializerFactory.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/UpdateSerializerFactory.java?rev=1625498&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/UpdateSerializerFactory.java (added)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/UpdateSerializerFactory.java Wed Sep 17 10:04:10 2014
@@ -0,0 +1,24 @@
+package com.hp.hpl.jena.sparql.serializer;
+
+import org.apache.jena.atlas.io.IndentedWriter;
+
+import com.hp.hpl.jena.query.Syntax;
+import com.hp.hpl.jena.sparql.core.Prologue;
+import com.hp.hpl.jena.sparql.modify.request.UpdateSerializer;
+
+/**
+ * Interface for update serializer factories
+ *
+ */
+public interface UpdateSerializerFactory {
+
+    /**
+     * Return true if this factory can create a serializer for the given syntax
+     */
+    public boolean accept(Syntax syntax);
+
+    /**
+     * Return a serializer for the given syntax
+     */
+    public UpdateSerializer create(Syntax syntax, Prologue prologue, IndentedWriter writer);
+}

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/update/UpdateRequest.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/update/UpdateRequest.java?rev=1625498&r1=1625497&r2=1625498&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/update/UpdateRequest.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/update/UpdateRequest.java Wed Sep 17 10:04:10 2014
@@ -18,61 +18,85 @@
 
 package com.hp.hpl.jena.update;
 
-import java.util.ArrayList ;
-import java.util.Collections ;
-import java.util.Iterator ;
-import java.util.List ;
-
-import org.apache.jena.atlas.io.IndentedWriter ;
-import org.apache.jena.atlas.io.PrintUtils ;
-import org.apache.jena.atlas.io.Printable ;
-
-import com.hp.hpl.jena.sparql.core.Prologue ;
-import com.hp.hpl.jena.sparql.modify.UpdateCompare ;
-import com.hp.hpl.jena.sparql.modify.request.UpdateWriter ;
-
-/** A SPARQL Update consists of a number of operations (e.g. INSERT, CLEAR).
- *  A request is the unit of execution.
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.jena.atlas.io.IndentedWriter;
+import org.apache.jena.atlas.io.PrintUtils;
+import org.apache.jena.atlas.io.Printable;
+
+import com.hp.hpl.jena.query.Syntax;
+import com.hp.hpl.jena.sparql.core.Prologue;
+import com.hp.hpl.jena.sparql.modify.UpdateCompare;
+import com.hp.hpl.jena.sparql.modify.request.UpdateSerializer;
+import com.hp.hpl.jena.sparql.modify.request.UpdateWriter;
+import com.hp.hpl.jena.sparql.serializer.SerializerRegistry;
+import com.hp.hpl.jena.sparql.serializer.UpdateSerializerFactory;
+
+/**
+ * A SPARQL Update consists of a number of operations (e.g. INSERT, CLEAR). A
+ * request is the unit of execution.
  */
-public class UpdateRequest extends Prologue implements Printable, Iterable<Update>
-{
-    private List<Update> operations = new ArrayList<>() ;
-    private List<Update> operationsView = Collections.unmodifiableList(operations) ;
-
-    public UpdateRequest() { super() ; }
-    public UpdateRequest(Update update)
-    {
-        this() ;
-        add(update) ;
-    }
-
-    public UpdateRequest add(Update update) { operations.add(update) ; return this ; } 
-    public UpdateRequest add(String string)
-    { 
-        UpdateFactory.parse(this, string) ;
-        return this ;
+public class UpdateRequest extends Prologue implements Printable, Iterable<Update> {
+    private List<Update> operations = new ArrayList<>();
+    private List<Update> operationsView = Collections.unmodifiableList(operations);
+
+    public UpdateRequest() {
+        super();
+    }
+
+    public UpdateRequest(Update update) {
+        this();
+        add(update);
+    }
+
+    public UpdateRequest add(Update update) {
+        operations.add(update);
+        return this;
+    }
+
+    public UpdateRequest add(String string) {
+        UpdateFactory.parse(this, string);
+        return this;
+    }
+
+    public List<Update> getOperations() {
+        return operationsView;
     }
 
-    public List<Update> getOperations() { return operationsView ; }
-    
     @Override
-    public Iterator<Update> iterator()
-    {
-        return operationsView.iterator() ;
+    public Iterator<Update> iterator() {
+        return operationsView.iterator();
     }
-    
+
     @Override
-    public String toString()
-    { return PrintUtils.toString(this) ; } 
-    
+    public String toString() {
+        return PrintUtils.toString(this);
+    }
+
     @Override
-    public void output(IndentedWriter out)
-    { UpdateWriter.output(this, out) ; }
-    
+    public void output(IndentedWriter out) {
+        // Try to use a serializer factory if available
+        UpdateSerializerFactory factory = SerializerRegistry.get().getUpdateSerializerFactory(
+                Syntax.defaultUpdateSyntax);
+        if (factory != null) {
+            UpdateSerializer serializer = factory.create(Syntax.defaultUpdateSyntax, this, out);
+            serializer.open();
+            serializer.update(this);
+            serializer.close();
+        } else {
+            // Otherwise fall back to old default behaviour
+            UpdateWriter.output(this, out);
+        }
+    }
+
     public boolean equalTo(UpdateRequest other) {
-        return UpdateCompare.isomorphic(this, other) ; 
+        return UpdateCompare.isomorphic(this, other);
     }
-        
-    // Better to have an explicit "isomorphism" equality and leave .equals alone.
+
+    // Better to have an explicit "isomorphism" equality and leave .equals
+    // alone.
     // The Query object historical did it the other way so leave that.
 }



Re: svn commit: r1625498 - in /jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena: query/ sparql/modify/request/ sparql/serializer/ update/

Posted by Rob Vesse <rv...@dotnetrdf.org>.
Andy

License headers have been added

The old Serializer is left in for now in case anyone is using it directly.
 While I suspect this is not the case I have marked it as deprecated for
now and we can remove it in future per our usual deprecation policy.

The new registry essentially takes the current logic used in Serializer to
create the actual QuerySerializer and replicates it in a
QuerySerializerFactory implementation which gets registered in
SerializerRegistry as the default setup of the registry.

Rob

On 17/09/2014 15:13, "Andy Seaborne" <an...@apache.org> wrote:

>On 17/09/14 11:04, rvesse@apache.org wrote:
>> Added:
>>      
>>jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/U
>>pdateSerializer.java
>>      
>>jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/Query
>>SerializerFactory.java
>>      
>>jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/Seria
>>lizerRegistry.java
>>      
>>jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/Updat
>>eSerializerFactory.java
>
>Rob - could you put license headers on these files please?
>
>Out of curiosity - is there some design reason why the old "Serializer"
>is still around? Not a registration of QuerySerializer?
>
>	Andy
>





Re: svn commit: r1625498 - in /jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena: query/ sparql/modify/request/ sparql/serializer/ update/

Posted by Andy Seaborne <an...@apache.org>.
On 17/09/14 11:04, rvesse@apache.org wrote:
> Added:
>      jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/request/UpdateSerializer.java
>      jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/QuerySerializerFactory.java
>      jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/SerializerRegistry.java
>      jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/serializer/UpdateSerializerFactory.java

Rob - could you put license headers on these files please?

Out of curiosity - is there some design reason why the old "Serializer" 
is still around? Not a registration of QuerySerializer?

	Andy