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 2011/12/18 23:10:55 UTC

svn commit: r1220553 - in /incubator/jena: Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/ Scratch/AFS/Jena-Dev/trunk/src/dsg/

Author: andy
Date: Sun Dec 18 22:10:54 2011
New Revision: 1220553

URL: http://svn.apache.org/viewvc?rev=1220553&view=rev
Log: (empty)

Modified:
    incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/DSG_Mem.java
    incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/DatasetGraphTests.java
    incubator/jena/Scratch/AFS/Jena-Dev/trunk/src/dsg/DatasetGraphSimpleMem.java
    incubator/jena/Scratch/AFS/Jena-Dev/trunk/src/dsg/TestDatasetGraphSimpleMem.java

Modified: incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/DSG_Mem.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/DSG_Mem.java?rev=1220553&r1=1220552&r2=1220553&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/DSG_Mem.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/DSG_Mem.java Sun Dec 18 22:10:54 2011
@@ -186,7 +186,7 @@ public class DSG_Mem extends DatasetGrap
         {
             List<Triple> results = new ArrayList<Triple>() ;
             
-            Iterator<Quad> iter = DSG_Mem.this.find(graphName, m.getMatchSubject(), m.getMatchPredicate(), m.getMatchObject()) ;
+            Iterator<Quad> iter = findNG(graphName, m.getMatchSubject(), m.getMatchPredicate(), m.getMatchObject()) ;
             for ( ; iter.hasNext() ; )
                 results.add(iter.next().asTriple()) ;
             

Modified: incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/DatasetGraphTests.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/DatasetGraphTests.java?rev=1220553&r1=1220552&r2=1220553&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/DatasetGraphTests.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/DatasetGraphTests.java Sun Dec 18 22:10:54 2011
@@ -163,7 +163,6 @@ public abstract class DatasetGraphTests
         
         dsg.getGraph(g).add(t) ;
         assertTrue(dsg.getGraph(g).contains(t)) ;
-
         
         Quad quad = SSE.parseQuad("(quad <g> <s> <p> <o>)") ;
         Iterator<Quad> iter = dsg.find(null, null, null, null) ;

Modified: incubator/jena/Scratch/AFS/Jena-Dev/trunk/src/dsg/DatasetGraphSimpleMem.java
URL: http://svn.apache.org/viewvc/incubator/jena/Scratch/AFS/Jena-Dev/trunk/src/dsg/DatasetGraphSimpleMem.java?rev=1220553&r1=1220552&r2=1220553&view=diff
==============================================================================
--- incubator/jena/Scratch/AFS/Jena-Dev/trunk/src/dsg/DatasetGraphSimpleMem.java (original)
+++ incubator/jena/Scratch/AFS/Jena-Dev/trunk/src/dsg/DatasetGraphSimpleMem.java Sun Dec 18 22:10:54 2011
@@ -18,18 +18,28 @@
 
 package dsg;
 
+import java.lang.management.GarbageCollectorMXBean ;
 import java.util.ArrayList ;
 import java.util.Collection ;
 import java.util.Iterator ;
+import java.util.List ;
 
+import org.openjena.atlas.iterator.Filter ;
 import org.openjena.atlas.iterator.Iter ;
+import org.openjena.atlas.lib.Lib ;
 
 import com.hp.hpl.jena.graph.Graph ;
 import com.hp.hpl.jena.graph.Node ;
 import com.hp.hpl.jena.graph.Triple ;
+import com.hp.hpl.jena.graph.TripleMatch ;
+import com.hp.hpl.jena.graph.impl.GraphBase ;
 import com.hp.hpl.jena.sparql.ARQException ;
+import com.hp.hpl.jena.sparql.core.DSG_Mem ;
 import com.hp.hpl.jena.sparql.core.DatasetGraphBase ;
 import com.hp.hpl.jena.sparql.core.Quad ;
+import com.hp.hpl.jena.tdb.store.GraphNamedTDB ;
+import com.hp.hpl.jena.util.iterator.ExtendedIterator ;
+import com.hp.hpl.jena.util.iterator.WrappedIterator ;
 
 // GraphMemSimple2, DSG_Mem
 
@@ -41,7 +51,7 @@ public class DatasetGraphSimpleMem exten
     //  triples2quads
     // See helpers in DatasetGraphQuad
     //  projectGraphName
-    // 
+    // Share DSG_Mem.(|)
     
     private MiniSet<Triple> triples = new MiniSet<Triple>() ;
     private MiniSet<Quad> quads = new MiniSet<Quad>() ;
@@ -87,8 +97,10 @@ public class DatasetGraphSimpleMem exten
     @Override
     public Iterator<Quad> find(Node g, Node s, Node p, Node o)
     {
-        return Iter.concat(triples2quadsDftGraph(triples.iterator()),
-                           quads.iterator()) ;
+        // match?
+        return match( Iter.concat(triples2quadsDftGraph(triples.iterator()),
+                                  quads.iterator()),
+                       g, s, p, o) ;
     }
 
     private boolean isDefaultGraph(Quad quad)
@@ -127,21 +139,109 @@ public class DatasetGraphSimpleMem exten
         quads.remove(quad) ;
     }
     
+    // Copy to DatasetGraphBase
+    @Override
+    public void addGraph(Node graphName, Graph graph)
+    { 
+        Iterator<Triple> iter = graph.find(Node.ANY, Node.ANY, Node.ANY) ;
+        for ( ; iter.hasNext() ; )
+        {
+            Triple t = iter.next() ;
+            add(new Quad(graphName, t)) ;
+        }
+    }
+
+    @Override
+    public void removeGraph(Node graphName)
+    {
+        List<Quad> x = Iter.toList(findNG(graphName, Node.ANY, Node.ANY, Node.ANY)) ;
+        for ( Quad q : x )
+            delete(q) ;
+    }
+    
     @Override
     public Iterator<Quad> findNG(Node g, Node s, Node p, Node o)
     {
-        return quads.iterator() ;
+        return match(quads.iterator(), g, s, p ,o) ;
     }
 
-    @Override
-    public Graph getDefaultGraph()
+    
+    
+    private Iterator<Quad> match(Iterator<Quad> iterator, Node g, Node s, Node p, Node o)
     {
-        return null ;
+        List<Quad> x = new ArrayList<Quad>() ;
+        for ( ; iterator.hasNext() ; )
+        {
+            Quad q = iterator.next() ;
+            if ( matches(q, g, s, p, o) ) 
+                x.add(q) ;
+        }
+        return x.iterator() ; 
+    }
+
+    private boolean matches(Quad q, Node g, Node s, Node p, Node o)
+    {
+        if ( g == null ) g = Node.ANY ;
+        if ( s == null ) s = Node.ANY ;
+        if ( p == null ) p = Node.ANY ;
+        if ( o == null ) o = Node.ANY ;
+        return q.matches(g,s,p,o) ;
     }
+    
+    @Override
+    public Graph getDefaultGraph()      { return new GraphDft() ; }
 
     @Override
-    public Graph getGraph(Node graphNode)
+    public Graph getGraph(Node graphNode)   { return new GraphNamed(graphNode) ; }
+    
+    class GraphDft extends GraphBase
     {
-        return null ;
+        @Override
+        public void performAdd(Triple t)
+        {
+            triples.add(t) ;
+        }
+
+        @Override
+        public void performDelete(Triple t) { triples.remove(t) ; }
+
+        @Override
+        protected ExtendedIterator<Triple> graphBaseFind(TripleMatch m)
+        {
+            List<Triple> results = new ArrayList<Triple>() ;
+            for ( Triple t : triples )
+                if ( t.matches(m.getMatchSubject(), m.getMatchPredicate(), m.getMatchObject()) )
+                    results.add(t) ;
+            return WrappedIterator.create(results.iterator()) ;
+        }
+    }
+    
+    class GraphNamed extends GraphBase
+    {
+        private final Node graphName ;
+
+        GraphNamed(Node gname) { this.graphName = gname ; }
+        
+        @Override
+        public void performAdd(Triple t)
+        {
+            Quad q = new Quad(graphName, t) ;
+            quads.add(q) ;
+        }
+
+        @Override
+        public void performDelete(Triple t) { Quad q = new Quad(graphName, t) ; quads.remove(q) ; }
+
+        @Override
+        protected ExtendedIterator<Triple> graphBaseFind(TripleMatch m)
+        {
+            List<Triple> results = new ArrayList<Triple>() ;
+            
+            Iterator<Quad> iter = findNG(graphName, m.getMatchSubject(), m.getMatchPredicate(), m.getMatchObject()) ;
+            for ( ; iter.hasNext() ; )
+                results.add(iter.next().asTriple()) ;
+            return WrappedIterator.create(results.iterator()) ;
+        }
     }
+    
 }

Modified: incubator/jena/Scratch/AFS/Jena-Dev/trunk/src/dsg/TestDatasetGraphSimpleMem.java
URL: http://svn.apache.org/viewvc/incubator/jena/Scratch/AFS/Jena-Dev/trunk/src/dsg/TestDatasetGraphSimpleMem.java?rev=1220553&r1=1220552&r2=1220553&view=diff
==============================================================================
--- incubator/jena/Scratch/AFS/Jena-Dev/trunk/src/dsg/TestDatasetGraphSimpleMem.java (original)
+++ incubator/jena/Scratch/AFS/Jena-Dev/trunk/src/dsg/TestDatasetGraphSimpleMem.java Sun Dec 18 22:10:54 2011
@@ -19,6 +19,8 @@
 package dsg;
 
 // Which is which?
+import org.junit.Test ;
+
 import com.hp.hpl.jena.sparql.core.DatasetGraph ;
 import com.hp.hpl.jena.sparql.core.DatasetGraphTests ;
 
@@ -31,10 +33,8 @@ public class TestDatasetGraphSimpleMem e
         return new DatasetGraphSimpleMem() ;
     }
     
-    // Sort out.
-//    com.hp.hpl.jena.sparql.graph.TestDatasetGraphMem x ;
-//    com.hp.hpl.jena.sparql.core.TestDatasetGraphMem y ;
-    
-    
+    // Assumes detectable empty graph
+    @Override
+    @Test public void graph_01() {}
 }