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 2015/07/17 13:28:56 UTC

jena git commit: DatasetChanges.reset()

Repository: jena
Updated Branches:
  refs/heads/master 2ab1ca877 -> 5e0894224


DatasetChanges.reset()


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/5e089422
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/5e089422
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/5e089422

Branch: refs/heads/master
Commit: 5e0894224b4019884d11a267e0787a97d7d7f5f4
Parents: 2ab1ca8
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Jul 17 12:28:43 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Jul 17 12:28:43 2015 +0100

----------------------------------------------------------------------
 .../apache/jena/sparql/core/DatasetChanges.java |   4 +
 .../jena/sparql/core/DatasetChangesCapture.java | 106 +++++++++++--------
 .../jena/sparql/core/DatasetChangesCounter.java |   1 +
 3 files changed, 67 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/5e089422/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChanges.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChanges.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChanges.java
index 04f4d93..3cedb49 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChanges.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChanges.java
@@ -35,4 +35,8 @@ public interface DatasetChanges
      
     /** Indicator that a sequence of changes has now finished */
     public void finish() ;
+    
+    /** Release any resources */
+    public void reset() ;
+
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/5e089422/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChangesCapture.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChangesCapture.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChangesCapture.java
index d70aeb1..0d31a79 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChangesCapture.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChangesCapture.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package org.apache.jena.sparql.core;
+package org.apache.jena.sparql.core ;
 
 import java.util.Collections ;
 import java.util.LinkedList ;
@@ -25,70 +25,88 @@ import java.util.List ;
 import org.apache.jena.atlas.lib.Pair ;
 import org.apache.jena.graph.Node ;
 
-/** Capture a record of quad actions */ 
-public class DatasetChangesCapture implements DatasetChanges
-{
-    // ArrayLists have an annoying issue that they grow by copying the internal []-array.
+/** Capture a record of quad actions */
+public class DatasetChangesCapture implements DatasetChanges {
+    // ArrayLists have an annoying issue that they grow by copying the internal
+    // []-array.
     // This growth is by a fixed factor of adding 50% which for an array
     // with little guidance as to likely size, can lead to undesirable GC
     // and copy-time issues.
-    // Using a LinkedList avoids this although it adds overhead for list entries.  
-    final private List<Pair<QuadAction, Quad>> actions = new LinkedList<>() ;
-        //new ArrayList<Pair<QuadAction, Quad>>() ;
-        
-    final private boolean captureAdd ;
-    final private boolean captureDelete ;
-    final private boolean captureNoAdd ;
-    final private boolean captureNoDelete ;
-    
+    // Using a LinkedList avoids this although it adds overhead for list
+    // entries.
+    private List<Pair<QuadAction, Quad>> actions ;
+    final private boolean                captureAdd ;
+    final private boolean                captureDelete ;
+    final private boolean                captureNoAdd ;
+    final private boolean                captureNoDelete ;
+
     /** Capture quad actions, excluding no-ops */
-    public DatasetChangesCapture()
-    { this(true, true, false, false) ; }
+    public DatasetChangesCapture() {
+        this(true, true, false, false) ;
+    }
 
-    /** Capture quad actions, either including or excluding the "no ops"
-     * @param recordNoOps   Whether to record {@link QuadAction#NO_ADD} and {@link QuadAction#NO_DELETE}  
+    /**
+     * Capture quad actions, either including or excluding the "no ops"
+     * 
+     * @param recordNoOps
+     *            Whether to record {@link QuadAction#NO_ADD} and
+     *            {@link QuadAction#NO_DELETE}
      */
-    public DatasetChangesCapture(boolean recordNoOps)
-    { this(true, true, recordNoOps, recordNoOps) ; }
+    public DatasetChangesCapture(boolean recordNoOps) {
+        this(true, true, recordNoOps, recordNoOps) ;
+    }
 
-    
     /** Capture quad actions, selectively by category */
-    public DatasetChangesCapture(boolean captureAdd, boolean captureDelete,  boolean captureNoAdd, boolean captureNoDelete)
-    { 
-        this.captureAdd = captureAdd ; 
-        this.captureDelete = captureDelete ; 
-        this.captureNoAdd = captureNoAdd ; 
-        this.captureNoDelete = captureNoDelete ; 
+    public DatasetChangesCapture(boolean captureAdd, boolean captureDelete, boolean captureNoAdd, boolean captureNoDelete) {
+        this.captureAdd = captureAdd ;
+        this.captureDelete = captureDelete ;
+        this.captureNoAdd = captureNoAdd ;
+        this.captureNoDelete = captureNoDelete ;
+    }
+
+    /** The actions recorded.
+     *  Only valid until the next {@code start} call.   
+     */
+    public List<Pair<QuadAction, Quad>> getActions() {
+        return Collections.unmodifiableList(actions) ;
     }
 
-    public List<Pair<QuadAction, Quad>> getActions()
-    {
-        return Collections.unmodifiableList(actions) ; 
+    @Override
+    public void start() {
+        actions = new LinkedList<>() ;
     }
-    
-    @Override public void start() { }
 
     @Override
-    public void change(QuadAction qaction, Node g, Node s, Node p, Node o)
-    {
-        Quad q = new Quad(g,s,p,o) ;
-        Pair<QuadAction, Quad> pair = Pair.create(qaction, q) ;  
-            
-        switch(qaction) {
-            case ADD : 
-                if ( captureAdd ) actions.add(pair) ;
+    public void change(QuadAction qaction, Node g, Node s, Node p, Node o) {
+        Quad q = new Quad(g, s, p, o) ;
+        Pair<QuadAction, Quad> pair = Pair.create(qaction, q) ;
+
+        switch (qaction) {
+            case ADD :
+                if ( captureAdd )
+                    actions.add(pair) ;
                 break ;
             case DELETE :
-                if ( captureDelete ) actions.add(pair) ;
+                if ( captureDelete )
+                    actions.add(pair) ;
                 break ;
             case NO_ADD :
-                if ( captureNoAdd ) actions.add(pair) ;
+                if ( captureNoAdd )
+                    actions.add(pair) ;
                 break ;
             case NO_DELETE :
-                if ( captureNoDelete ) actions.add(pair) ;
+                if ( captureNoDelete )
+                    actions.add(pair) ;
                 break ;
         }
     }
 
-    @Override public void finish() { }
+    @Override
+    public void finish() {}
+
+    @Override
+    public void reset() {
+        actions.clear() ;
+        actions = null ;
+    }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/5e089422/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChangesCounter.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChangesCounter.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChangesCounter.java
index a864257..3a157e6 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChangesCounter.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetChangesCounter.java
@@ -58,6 +58,7 @@ public class DatasetChangesCounter implements DatasetChanges
         return countAdd > 0 || countDelete > 0 ;
     }
     
+    @Override
     public void reset() { 
         countStart    = 0 ;
         countFinish   = 0 ;