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 2012/11/04 19:09:19 UTC

svn commit: r1405597 - in /jena/trunk/jena-arq/src/main/java: com/hp/hpl/jena/sparql/core/assembler/ com/hp/hpl/jena/sparql/modify/ org/openjena/atlas/lib/

Author: andy
Date: Sun Nov  4 18:09:19 2012
New Revision: 1405597

URL: http://svn.apache.org/viewvc?rev=1405597&view=rev
Log:
Add some support code from patch JENA-330_20121016.patch).

Added:
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/GraphStoreNullTransactional.java
    jena/trunk/jena-arq/src/main/java/org/openjena/atlas/lib/SinkToCollection.java
Modified:
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetAssemblerVocab.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetNullAssembler.java

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetAssemblerVocab.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetAssemblerVocab.java?rev=1405597&r1=1405596&r2=1405597&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetAssemblerVocab.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetAssemblerVocab.java Sun Nov  4 18:09:19 2012
@@ -40,6 +40,8 @@ public class DatasetAssemblerVocab
 
     public static final Property pIndex              = ResourceFactory.createProperty(NS, "textIndex") ;
     
+    public static final Property pTransactional      = ResourceFactory.createProperty(NS, "transactional") ;
+    
     public static final Property pContext            = ResourceFactory.createProperty(NS, "context") ;
     public static final Property pCxtName            = ResourceFactory.createProperty(NS, "cxtName") ;
     public static final Property pCxtValue           = ResourceFactory.createProperty(NS, "cxtValue") ;

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetNullAssembler.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetNullAssembler.java?rev=1405597&r1=1405596&r2=1405597&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetNullAssembler.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetNullAssembler.java Sun Nov  4 18:09:19 2012
@@ -18,12 +18,18 @@
 
 package com.hp.hpl.jena.sparql.core.assembler;
 
+import org.openjena.atlas.logging.Log ;
+
 import com.hp.hpl.jena.assembler.Assembler ;
 import com.hp.hpl.jena.assembler.Mode ;
 import com.hp.hpl.jena.assembler.assemblers.AssemblerBase ;
+import com.hp.hpl.jena.graph.Node ;
 import com.hp.hpl.jena.query.DatasetFactory ;
 import com.hp.hpl.jena.rdf.model.Resource ;
+import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.expr.NodeValue ;
 import com.hp.hpl.jena.sparql.modify.GraphStoreNull ;
+import com.hp.hpl.jena.sparql.modify.GraphStoreNullTransactional ;
 
 public class DatasetNullAssembler extends AssemblerBase implements Assembler
 {
@@ -32,6 +38,25 @@ public class DatasetNullAssembler extend
     @Override
     public Object open(Assembler a, Resource root, Mode mode)
     {
-        return DatasetFactory.create(new GraphStoreNull()) ;
+        boolean transactional = true;
+        
+        if (root.hasProperty(DatasetAssemblerVocab.pTransactional))
+        {
+            Node b = root.getProperty(DatasetAssemblerVocab.pTransactional).getObject().asNode();
+            NodeValue nv = NodeValue.makeNode(b);
+            if (nv.isBoolean())
+            {
+                transactional = nv.getBoolean();
+            }
+            else
+            {
+                Log.warn(DatasetNullAssembler.class,
+                         "Failed to recognize value for transactional setting (ignored): " + b);
+            }
+        }
+        
+        DatasetGraph dsg = transactional ? new GraphStoreNullTransactional() : new GraphStoreNull();
+        
+        return DatasetFactory.create(dsg) ;
     }
 }

Added: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/GraphStoreNullTransactional.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/GraphStoreNullTransactional.java?rev=1405597&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/GraphStoreNullTransactional.java (added)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/modify/GraphStoreNullTransactional.java Sun Nov  4 18:09:19 2012
@@ -0,0 +1,44 @@
+package com.hp.hpl.jena.sparql.modify ;
+
+import com.hp.hpl.jena.query.ReadWrite ;
+import com.hp.hpl.jena.sparql.core.Transactional ;
+import com.hp.hpl.jena.sparql.core.TransactionalNull ;
+
+/**
+ * A transactional black hole for Quads, add as many as you want and it will forget them all.  Useful for testing.
+ */
+public class GraphStoreNullTransactional extends GraphStoreNull implements Transactional
+{
+    private final Transactional transaction = new TransactionalNull() ;
+
+    @Override
+    public void begin(ReadWrite readWrite)
+    {
+        transaction.begin(readWrite) ;
+    }
+
+    @Override
+    public void commit()
+    {
+        transaction.commit() ;
+    }
+
+    @Override
+    public void abort()
+    {
+        transaction.abort() ;
+    }
+
+    @Override
+    public boolean isInTransaction()
+    {
+        return transaction.isInTransaction() ;
+    }
+
+    @Override
+    public void end()
+    {
+        transaction.end() ;
+    }
+
+}

Added: jena/trunk/jena-arq/src/main/java/org/openjena/atlas/lib/SinkToCollection.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/openjena/atlas/lib/SinkToCollection.java?rev=1405597&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/atlas/lib/SinkToCollection.java (added)
+++ jena/trunk/jena-arq/src/main/java/org/openjena/atlas/lib/SinkToCollection.java Sun Nov  4 18:09:19 2012
@@ -0,0 +1,38 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.openjena.atlas.lib;
+
+import java.util.Collection;
+
+/** Send items to a collection */
+public class SinkToCollection<T> implements Sink<T>
+{
+    private final Collection<T> c ;
+
+    public SinkToCollection(Collection<T> c) { this.c = c ; }
+
+    @Override
+    public void send(T item) { c.add(item); }
+
+    @Override
+    public void flush() {}
+
+    @Override
+    public void close() {}
+}