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() {}
}