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 2021/12/21 10:55:19 UTC
[jena] branch main updated: JENA-2212: Common root DatasetAssembler
This is an automated email from the ASF dual-hosted git repository.
andy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git
The following commit(s) were added to refs/heads/main by this push:
new cbf5c5e JENA-2212: Common root DatasetAssembler
new da5921b Merge pull request #1132 from afs/ds-assembler
cbf5c5e is described below
commit cbf5c5ed5d43c690601a002c41d24f6e47f6ef98
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Sat Dec 11 16:11:16 2021 +0000
JENA-2212: Common root DatasetAssembler
---
.../java/org/apache/jena/query/DatasetFactory.java | 4 +-
.../jena/rdfs/assembler/DatasetRDFSAssembler.java | 16 +--
.../jena/sparql/core/DatasetGraphFactory.java | 4 +-
.../org/apache/jena/sparql/core/DatasetOne.java | 12 +-
.../jena/sparql/core/assembler/AssemblerUtils.java | 2 +-
.../sparql/core/assembler/DatasetAssembler.java | 60 ++--------
...Assembler.java => DatasetAssemblerGeneral.java} | 14 +--
.../core/assembler/DatasetNullAssembler.java | 13 +--
.../sparql/core/assembler/DatasetOneAssembler.java | 43 ++++---
.../core/assembler/InMemDatasetAssembler.java | 21 ++--
...AssemblerTDB.java => DatasetAssemblerTDB2.java} | 17 +--
...GraphAssembler.java => TDB2GraphAssembler.java} | 34 +++---
.../org/apache/jena/tdb2/assembler/VocabTDB2.java | 8 +-
.../jena/test/assembler/TestDatasetAssembler.java | 54 ++++-----
...AssemblerTDB.java => DatasetAssemblerTDB1.java} | 43 ++++---
.../jena/tdb/assembler/TDB1GraphAssembler.java | 56 ++++-----
.../jena/tdb/assembler/TDBGraphAssembler.java | 125 ---------------------
.../org/apache/jena/tdb/assembler/VocabTDB.java | 22 ++--
.../query/text/assembler/TextDatasetAssembler.java | 11 +-
19 files changed, 191 insertions(+), 368 deletions(-)
diff --git a/jena-arq/src/main/java/org/apache/jena/query/DatasetFactory.java b/jena-arq/src/main/java/org/apache/jena/query/DatasetFactory.java
index 7fba7a0..f0a7fd2 100644
--- a/jena-arq/src/main/java/org/apache/jena/query/DatasetFactory.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/DatasetFactory.java
@@ -28,8 +28,8 @@ import org.apache.jena.riot.RDFDataMgr;
import org.apache.jena.sparql.ARQException;
import org.apache.jena.sparql.core.DatasetGraph;
import org.apache.jena.sparql.core.DatasetGraphFactory;
+import org.apache.jena.sparql.core.DatasetGraphOne;
import org.apache.jena.sparql.core.DatasetImpl;
-import org.apache.jena.sparql.core.DatasetOne;
import org.apache.jena.sparql.core.assembler.DatasetAssembler;
import org.apache.jena.sparql.util.DatasetUtils;
import org.apache.jena.sparql.util.graph.GraphUtils;
@@ -126,7 +126,7 @@ public class DatasetFactory {
*/
public static Dataset wrap(Model model) {
Objects.requireNonNull(model, "Can't wrap a null Model reference") ;
- return DatasetOne.create(model);
+ return wrap(DatasetGraphOne.create(model.getGraph()));
}
/**
diff --git a/jena-arq/src/main/java/org/apache/jena/rdfs/assembler/DatasetRDFSAssembler.java b/jena-arq/src/main/java/org/apache/jena/rdfs/assembler/DatasetRDFSAssembler.java
index c9149d0..2fd9c18 100644
--- a/jena-arq/src/main/java/org/apache/jena/rdfs/assembler/DatasetRDFSAssembler.java
+++ b/jena-arq/src/main/java/org/apache/jena/rdfs/assembler/DatasetRDFSAssembler.java
@@ -22,32 +22,23 @@ import static org.apache.jena.sparql.util.graph.GraphUtils.getAsStringValue;
import static org.apache.jena.sparql.util.graph.GraphUtils.getResourceValue;
import org.apache.jena.assembler.Assembler;
-import org.apache.jena.assembler.Mode;
-import org.apache.jena.assembler.assemblers.AssemblerBase;
import org.apache.jena.assembler.exceptions.AssemblerException;
import org.apache.jena.graph.Graph;
import org.apache.jena.query.Dataset;
-import org.apache.jena.query.DatasetFactory;
import org.apache.jena.rdf.model.Resource;
import org.apache.jena.rdfs.DatasetGraphRDFS;
import org.apache.jena.rdfs.RDFSFactory;
import org.apache.jena.rdfs.SetupRDFS;
import org.apache.jena.riot.RDFDataMgr;
import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.core.assembler.DatasetAssembler;
-public class DatasetRDFSAssembler extends AssemblerBase implements Assembler {
+public class DatasetRDFSAssembler extends DatasetAssembler {
public static Resource getType() {
return VocabRDFS.tDatasetRDFS;
}
- @Override
- public Object open(Assembler a, Resource root, Mode mode) {
- DatasetGraph dsg = createDataset(a, root, mode) ;
- Dataset ds = DatasetFactory.wrap(dsg);
- return ds ;
- }
-
/**
* <pre>
* <#rdfsDS> rdf:type ja:DatasetRDFS ;
@@ -62,7 +53,8 @@ public class DatasetRDFSAssembler extends AssemblerBase implements Assembler {
* </pre>
*/
- public DatasetGraph createDataset(Assembler a, Resource root, Mode mode) {
+ @Override
+ public DatasetGraph createDataset(Assembler a, Resource root) {
Resource dataset = getResourceValue(root, VocabRDFS.pDataset) ;
if ( dataset == null )
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphFactory.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphFactory.java
index a66fa95..6322531 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphFactory.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphFactory.java
@@ -107,8 +107,8 @@ public class DatasetGraphFactory
* Create a DatasetGraph starting with a single graph.
* New graphs must be explicitly added.
*/
- public static DatasetGraph create(Graph graph) {
- return new DatasetGraphMapLink(graph) ;
+ public static DatasetGraph create(Graph dftGraph) {
+ return new DatasetGraphMapLink(dftGraph);
}
/**
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetOne.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetOne.java
index 53e5830..f22e947 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetOne.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetOne.java
@@ -21,24 +21,30 @@ package org.apache.jena.sparql.core;
import org.apache.jena.graph.Node;
import org.apache.jena.graph.NodeFactory;
import org.apache.jena.query.Dataset;
+import org.apache.jena.query.DatasetFactory;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.Resource;
/**
- * A dataset that just hold a single model as the default graph.
+ * A dataset that just hold a single model as the default graph.
* It is particularly appropriate for use with inference models.
- *
+ *
* @apiNote
* This class makes the use of DatasetImpl with one fixed model clearer. It may
* become useful to have a separate implementation altogether at some time.
+ *
+ * @deprecated Use {@link DatasetFactory#wrap(Model)}
*/
+@Deprecated
public class DatasetOne extends DatasetImpl {
public static Dataset create(Model model) {
- return new DatasetOne(model);
+ return DatasetFactory.wrap(model);
}
private final Model defaultModel;
+ /** @deprecated Use {@link DatasetFactory#wrap(Model)} */
+ @Deprecated
public DatasetOne(Model model) {
super(DatasetGraphOne.create(model.getGraph()));
this.defaultModel = model;
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/AssemblerUtils.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/AssemblerUtils.java
index c7e218f..73af182 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/AssemblerUtils.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/AssemblerUtils.java
@@ -59,7 +59,7 @@ public class AssemblerUtils
if ( initialized )
return ;
initialized = true ;
- registerDataset(tDataset, new DatasetAssembler());
+ registerDataset(tDataset, new DatasetAssemblerGeneral());
registerDataset(tDatasetOne, new DatasetOneAssembler());
registerDataset(tDatasetZero, new DatasetNullAssembler(tDatasetZero));
registerDataset(tDatasetSink, new DatasetNullAssembler(tDatasetSink));
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssembler.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssembler.java
index 652bd1a..d90b0de 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssembler.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssembler.java
@@ -18,68 +18,24 @@
package org.apache.jena.sparql.core.assembler ;
-import java.util.List ;
-
import org.apache.jena.assembler.Assembler ;
import org.apache.jena.assembler.Mode ;
import org.apache.jena.assembler.assemblers.AssemblerBase ;
-import org.apache.jena.atlas.logging.Log ;
-import org.apache.jena.query.Dataset ;
-import org.apache.jena.query.DatasetFactory ;
-import org.apache.jena.rdf.model.Model ;
-import org.apache.jena.rdf.model.RDFNode ;
+import org.apache.jena.query.Dataset;
+import org.apache.jena.query.DatasetFactory;
import org.apache.jena.rdf.model.Resource ;
-import org.apache.jena.sparql.graph.GraphFactory ;
-import org.apache.jena.sparql.util.FmtUtils ;
-import org.apache.jena.sparql.util.graph.GraphUtils ;
+import org.apache.jena.sparql.core.DatasetGraph;
-public class DatasetAssembler extends AssemblerBase implements Assembler {
+public abstract class DatasetAssembler extends AssemblerBase implements Assembler {
public static Resource getType() {
return DatasetAssemblerVocab.tDataset ;
}
@Override
- public Object open(Assembler a, Resource root, Mode mode) {
- Dataset ds = createDataset(a, root, mode) ;
- return ds ;
+ public Dataset open(Assembler a, Resource root, Mode mode) {
+ DatasetGraph dsg = createDataset(a, root) ;
+ return DatasetFactory.wrap(dsg);
}
- public Dataset createDataset(Assembler a, Resource root, Mode mode) {
- // -------- Default graph
- // Can use ja:graph or ja:defaultGraph
- Resource dftGraph = GraphUtils.getResourceValue(root, DatasetAssemblerVocab.pDefaultGraph) ;
- if ( dftGraph == null )
- dftGraph = GraphUtils.getResourceValue(root, DatasetAssemblerVocab.pGraph) ;
-
- Model dftModel = null ;
- if ( dftGraph != null )
- dftModel = a.openModel(dftGraph) ;
- else
- // Assembler description did not define one.
- dftModel = GraphFactory.makeDefaultModel() ;
- Dataset ds = DatasetFactory.create(dftModel) ;
- // -------- Named graphs
- List<RDFNode> nodes = GraphUtils.multiValue(root, DatasetAssemblerVocab.pNamedGraph) ;
- for ( RDFNode n : nodes ) {
- if ( !(n instanceof Resource) )
- throw new DatasetAssemblerException(root, "Not a resource: " + FmtUtils.stringForRDFNode(n));
- Resource r = (Resource)n;
-
- String gName = GraphUtils.getAsStringValue(r, DatasetAssemblerVocab.pGraphName);
- Resource g = GraphUtils.getResourceValue(r, DatasetAssemblerVocab.pGraph);
- if ( g == null ) {
- g = GraphUtils.getResourceValue(r, DatasetAssemblerVocab.pGraphAlt);
- if ( g != null ) {
- Log.warn(this, "Use of old vocabulary: use :graph not :graphData");
- } else {
- throw new DatasetAssemblerException(root, "no graph for: " + gName);
- }
- }
-
- Model m = a.openModel(g);
- ds.addNamedModel(gName, m);
- }
- AssemblerUtils.mergeContext(root, ds.getContext()) ;
- return ds ;
- }
+ public abstract DatasetGraph createDataset(Assembler a, Resource root);
}
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssembler.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssemblerGeneral.java
similarity index 88%
copy from jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssembler.java
copy to jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssemblerGeneral.java
index 652bd1a..4bfaf96 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssembler.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssemblerGeneral.java
@@ -21,30 +21,24 @@ package org.apache.jena.sparql.core.assembler ;
import java.util.List ;
import org.apache.jena.assembler.Assembler ;
-import org.apache.jena.assembler.Mode ;
-import org.apache.jena.assembler.assemblers.AssemblerBase ;
import org.apache.jena.atlas.logging.Log ;
import org.apache.jena.query.Dataset ;
import org.apache.jena.query.DatasetFactory ;
import org.apache.jena.rdf.model.Model ;
import org.apache.jena.rdf.model.RDFNode ;
import org.apache.jena.rdf.model.Resource ;
+import org.apache.jena.sparql.core.DatasetGraph;
import org.apache.jena.sparql.graph.GraphFactory ;
import org.apache.jena.sparql.util.FmtUtils ;
import org.apache.jena.sparql.util.graph.GraphUtils ;
-public class DatasetAssembler extends AssemblerBase implements Assembler {
+public class DatasetAssemblerGeneral extends DatasetAssembler implements Assembler {
public static Resource getType() {
return DatasetAssemblerVocab.tDataset ;
}
@Override
- public Object open(Assembler a, Resource root, Mode mode) {
- Dataset ds = createDataset(a, root, mode) ;
- return ds ;
- }
-
- public Dataset createDataset(Assembler a, Resource root, Mode mode) {
+ public DatasetGraph createDataset(Assembler a, Resource root) {
// -------- Default graph
// Can use ja:graph or ja:defaultGraph
Resource dftGraph = GraphUtils.getResourceValue(root, DatasetAssemblerVocab.pDefaultGraph) ;
@@ -80,6 +74,6 @@ public class DatasetAssembler extends AssemblerBase implements Assembler {
ds.addNamedModel(gName, m);
}
AssemblerUtils.mergeContext(root, ds.getContext()) ;
- return ds ;
+ return ds.asDatasetGraph() ;
}
}
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetNullAssembler.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetNullAssembler.java
index aa6d3a8..38de944 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetNullAssembler.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetNullAssembler.java
@@ -19,11 +19,7 @@
package org.apache.jena.sparql.core.assembler;
import org.apache.jena.assembler.Assembler;
-import org.apache.jena.assembler.Mode;
-import org.apache.jena.assembler.assemblers.AssemblerBase;
import org.apache.jena.atlas.lib.InternalErrorException;
-import org.apache.jena.query.Dataset;
-import org.apache.jena.query.DatasetFactory;
import org.apache.jena.rdf.model.Resource;
import org.apache.jena.sparql.core.DatasetGraph;
import org.apache.jena.sparql.core.DatasetGraphSink;
@@ -36,7 +32,7 @@ import org.apache.jena.sparql.core.DatasetGraphZero;
* @see DatasetGraphZero
*/
-public class DatasetNullAssembler extends AssemblerBase {
+public class DatasetNullAssembler extends DatasetAssembler {
private final Resource tDataset;
public DatasetNullAssembler(Resource tDataset) {
@@ -44,7 +40,7 @@ public class DatasetNullAssembler extends AssemblerBase {
}
@Override
- public Object open(Assembler a, Resource root, Mode mode) {
+ public DatasetGraph createDataset(Assembler a, Resource root) {
DatasetGraph dsg;
if ( DatasetAssemblerVocab.tDatasetSink.equals(tDataset) )
dsg = DatasetGraphSink.create();
@@ -52,8 +48,7 @@ public class DatasetNullAssembler extends AssemblerBase {
dsg = DatasetGraphZero.create();
else
throw new InternalErrorException();
- Dataset ds = DatasetFactory.wrap(dsg);
- AssemblerUtils.mergeContext(root, ds.getContext());
- return ds;
+ AssemblerUtils.mergeContext(root, dsg.getContext());
+ return dsg;
}
}
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetOneAssembler.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetOneAssembler.java
index a792442..ef5a448 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetOneAssembler.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetOneAssembler.java
@@ -21,14 +21,13 @@ package org.apache.jena.sparql.core.assembler;
import java.util.List;
import org.apache.jena.assembler.Assembler;
-import org.apache.jena.assembler.Mode;
-import org.apache.jena.assembler.assemblers.AssemblerBase;
import org.apache.jena.assembler.exceptions.AssemblerException;
-import org.apache.jena.query.Dataset;
-import org.apache.jena.query.DatasetFactory;
+import org.apache.jena.graph.Graph;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.RDFNode;
import org.apache.jena.rdf.model.Resource;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.core.DatasetGraphFactory;
import org.apache.jena.sparql.graph.GraphFactory;
import org.apache.jena.sparql.util.graph.GraphUtils;
@@ -39,29 +38,30 @@ import org.apache.jena.sparql.util.graph.GraphUtils;
* <p>
* General datasets and SPARQL Update can create graphs by inserting a quad.
* The dataset returned by this assembler does not support that.
- *
+ *
* @see DatasetAssembler {@code DatasetAssembler}, for a general dataset.
* @see InMemDatasetAssembler {@code InMemDatasetAssembler}, for a fully transactional, in-memory dataset.
*/
-public class DatasetOneAssembler extends AssemblerBase {
+public class DatasetOneAssembler extends DatasetAssembler {
public static Resource getType() {
return DatasetAssemblerVocab.tDatasetOne;
}
@Override
- public Object open(Assembler a, Resource root, Mode mode) {
- Dataset ds = createDataset(a, root, mode);
- return ds;
- }
-
- public Dataset createDataset(Assembler a, Resource root, Mode mode) {
+ public DatasetGraph createDataset(Assembler a, Resource root) {
// Can use ja:graph or ja:defaultGraph but not both.
Resource dftGraphDesc1 = GraphUtils.getResourceValue(root, DatasetAssemblerVocab.pDefaultGraph);
Resource dftGraphDesc2 = GraphUtils.getResourceValue(root, DatasetAssemblerVocab.pGraph);
-
+
if ( dftGraphDesc1 != null && dftGraphDesc2 != null )
- throw new AssemblerException(root, "Found both ja:graph and ja:defaultGraph");
-
+ throw new AssemblerException(root, "Found both ja:graph and ja:defaultGraph");
+
+ List<RDFNode> nodes = GraphUtils.multiValue(root, DatasetAssemblerVocab.pNamedGraph);
+ if ( ! nodes.isEmpty() ) {
+ String x = DatasetAssemblerVocab.tDatasetOne.getLocalName();
+ throw new AssemblerException(root, "A "+x+" dataset can only hold a default graph, and no named graphs");
+ }
+
Resource graphDesc = ( dftGraphDesc1 != null) ? dftGraphDesc1 : dftGraphDesc2 ;
Model model;
if ( graphDesc != null )
@@ -69,14 +69,9 @@ public class DatasetOneAssembler extends AssemblerBase {
else
// Assembler description did not define one.
model = GraphFactory.makeDefaultModel();
- Dataset ds = DatasetFactory.wrap(model);
-
- List<RDFNode> nodes = GraphUtils.multiValue(root, DatasetAssemblerVocab.pNamedGraph);
- if ( ! nodes.isEmpty() ) {
- String x = DatasetAssemblerVocab.tDatasetOne.getLocalName();
- throw new AssemblerException(root, "A "+x+" dataset can only hold a default graph, and no named graphs");
- }
- AssemblerUtils.mergeContext(root, ds.getContext());
- return ds;
+ Graph dftGraph = model.getGraph();
+ DatasetGraph dsg = DatasetGraphFactory.wrap(dftGraph);
+ AssemblerUtils.mergeContext(root, dsg.getContext());
+ return dsg;
}
}
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/InMemDatasetAssembler.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/InMemDatasetAssembler.java
index b0c5f9b..fedea54 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/InMemDatasetAssembler.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/InMemDatasetAssembler.java
@@ -19,7 +19,6 @@
package org.apache.jena.sparql.core.assembler;
import static org.apache.jena.assembler.JA.data;
-import static org.apache.jena.query.DatasetFactory.createTxnMem;
import static org.apache.jena.riot.RDFDataMgr.read;
import static org.apache.jena.sparql.core.assembler.AssemblerUtils.mergeContext;
import static org.apache.jena.sparql.core.assembler.DatasetAssemblerVocab.pGraphName;
@@ -29,31 +28,34 @@ import static org.apache.jena.sparql.util.graph.GraphUtils.multiValueAsString;
import static org.apache.jena.sparql.util.graph.GraphUtils.multiValueResource;
import org.apache.jena.assembler.Assembler;
-import org.apache.jena.assembler.Mode;
-import org.apache.jena.assembler.assemblers.AssemblerBase;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.NodeFactory;
import org.apache.jena.query.Dataset;
import org.apache.jena.rdf.model.Resource;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.core.DatasetGraphFactory;
import org.apache.jena.system.Txn;
import org.apache.jena.vocabulary.RDF;
/**
* An {@link Assembler} that creates in-memory {@link Dataset}s.
*/
-public class InMemDatasetAssembler extends AssemblerBase implements Assembler {
+public class InMemDatasetAssembler extends DatasetAssembler {
public static Resource getType() {
return DatasetAssemblerVocab.tMemoryDataset ;
}
+
@Override
- public Dataset open(final Assembler assembler, final Resource root, final Mode mode) {
+ public DatasetGraph createDataset(Assembler a, Resource root) {
// Old name : bypass.
if ( ! root.hasProperty( RDF.type, DatasetAssemblerVocab.tDatasetTxnMem ) )
checkType(root, DatasetAssemblerVocab.tMemoryDataset);
- final Dataset dataset = createTxnMem();
+ final DatasetGraph dataset = DatasetGraphFactory.createTxnMem();
mergeContext(root, dataset.getContext());
- Txn.executeWrite(dataset, ()->{
+ Txn.executeWrite(dataset, ()->{
// Load data into the default graph
// This also loads quads into the dataset.
multiValueAsString(root, data)
@@ -64,7 +66,10 @@ public class InMemDatasetAssembler extends AssemblerBase implements Assembler {
final String graphName = getAsStringValue(namedGraphResource, pGraphName);
if (namedGraphResource.hasProperty(data)) {
multiValueAsString(namedGraphResource, data)
- .forEach(namedGraphData -> read(dataset.getNamedModel(graphName), namedGraphData));
+ .forEach(namedGraphData -> {
+ Node gn = NodeFactory.createURI(graphName);
+ read(dataset.getGraph(gn), namedGraphData);
+ });
}
});
});
diff --git a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/DatasetAssemblerTDB.java b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/DatasetAssemblerTDB2.java
similarity index 84%
rename from jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/DatasetAssemblerTDB.java
rename to jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/DatasetAssemblerTDB2.java
index 00b684f..3e4b8ef 100644
--- a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/DatasetAssemblerTDB.java
+++ b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/DatasetAssemblerTDB2.java
@@ -24,13 +24,10 @@ import static org.apache.jena.tdb2.assembler.VocabTDB2.pLocation;
import static org.apache.jena.tdb2.assembler.VocabTDB2.pUnionDefaultGraph;
import org.apache.jena.assembler.Assembler;
-import org.apache.jena.assembler.Mode;
import org.apache.jena.assembler.exceptions.AssemblerException;
import org.apache.jena.atlas.logging.Log;
import org.apache.jena.dboe.base.file.Location;
import org.apache.jena.graph.Node;
-import org.apache.jena.query.Dataset;
-import org.apache.jena.query.DatasetFactory;
import org.apache.jena.rdf.model.Resource;
import org.apache.jena.sparql.core.DatasetGraph;
import org.apache.jena.sparql.core.assembler.AssemblerUtils;
@@ -40,17 +37,16 @@ import org.apache.jena.sys.JenaSystem;
import org.apache.jena.tdb2.DatabaseMgr;
import org.apache.jena.tdb2.TDB2;
-public class DatasetAssemblerTDB extends DatasetAssembler
+public class DatasetAssemblerTDB2 extends DatasetAssembler
{
static { JenaSystem.init(); }
@Override
- public Dataset createDataset(Assembler a, Resource root, Mode mode) {
- TDB2.init();
- return make(root);
+ public DatasetGraph createDataset(Assembler a, Resource root) {
+ return make(a, root);
}
- static Dataset make(Resource root) {
+ public static DatasetGraph make(Assembler a, Resource root) {
if ( !exactlyOneProperty(root, pLocation) )
throw new AssemblerException(root, "No location given");
@@ -64,7 +60,7 @@ public class DatasetAssemblerTDB extends DatasetAssembler
if ( nv.isBoolean() )
dsg.getContext().set(TDB2.symUnionDefaultGraph, nv.getBoolean());
else
- Log.warn(DatasetAssemblerTDB.class, "Failed to recognize value for union graph setting (ignored): " + b);
+ Log.warn(DatasetAssemblerTDB2.class, "Failed to recognize value for union graph setting (ignored): " + b);
}
/*
@@ -74,7 +70,6 @@ public class DatasetAssemblerTDB extends DatasetAssembler
tdb:unionGraph true; # or "true"
*/
AssemblerUtils.mergeContext(root, dsg.getContext());
- return DatasetFactory.wrap(dsg);
+ return dsg;
}
-
}
diff --git a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/TDBGraphAssembler.java b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/TDB2GraphAssembler.java
similarity index 77%
copy from jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/TDBGraphAssembler.java
copy to jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/TDB2GraphAssembler.java
index a5e8300..2b7aee7 100644
--- a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/TDBGraphAssembler.java
+++ b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/TDB2GraphAssembler.java
@@ -29,22 +29,26 @@ import org.apache.jena.assembler.assemblers.AssemblerBase;
import org.apache.jena.assembler.exceptions.AssemblerException;
import org.apache.jena.atlas.logging.Log;
import org.apache.jena.dboe.base.file.Location;
-import org.apache.jena.query.Dataset;
+import org.apache.jena.graph.Graph;
+import org.apache.jena.graph.NodeFactory;
import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.rdf.model.Resource;
-import org.apache.jena.tdb2.TDB2;
-import org.apache.jena.tdb2.TDB2Factory;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sys.JenaSystem;
+import org.apache.jena.tdb2.DatabaseMgr;
-public class TDBGraphAssembler extends AssemblerBase implements Assembler
+public class TDB2GraphAssembler extends AssemblerBase implements Assembler
{
+ static { JenaSystem.init(); }
+
@Override
- public Model open(Assembler a, Resource root, Mode mode)
- {
- // In case we go via explicit index construction,
- // although given we got here, the assembler is wired in
- // and that probably means TDB.init
- TDB2.init();
+ public Model open(Assembler a, Resource root, Mode mode) {
+ Graph g = createGraph(a, root, mode);
+ return ModelFactory.createModelForGraph(g);
+ }
+ public Graph createGraph(Assembler a, Resource root, Mode mode) {
// Make a model - the default model of the TDB dataset
// [] rdf:type tdb:GraphTDB;
// tdb:location "dir";
@@ -73,21 +77,21 @@ public class TDBGraphAssembler extends AssemblerBase implements Assembler
if ( root.hasProperty(pIndex) )
Log.warn(this, "Custom indexes not implemented yet - ignored");
- final Dataset ds;
+ DatasetGraph dsg;
if ( locationDir != null )
{
Location location = Location.create(locationDir);
- ds = TDB2Factory.connectDataset(location);
+ dsg = DatabaseMgr.connectDatasetGraph(location);
}
else
- ds = DatasetAssemblerTDB.make(dataset);
+ dsg = DatasetAssemblerTDB2.make(a, dataset);
try {
if ( graphName != null )
- return ds.getNamedModel(graphName);
+ return dsg.getGraph(NodeFactory.createURI(graphName));
else
- return ds.getDefaultModel();
+ return dsg.getDefaultGraph();
} catch (RuntimeException ex)
{
ex.printStackTrace(System.err);
diff --git a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/VocabTDB2.java b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/VocabTDB2.java
index 44721b4..d1517dc 100644
--- a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/VocabTDB2.java
+++ b/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/VocabTDB2.java
@@ -82,10 +82,10 @@ public class VocabTDB2
// Wire in the extension assemblers (extensions relative to the Jena assembler framework)
// Domain and range for properties.
// Separated and use ja:imports
- AssemblerUtils.registerDataset(tDatasetTDB, new DatasetAssemblerTDB());
- AssemblerUtils.registerDataset(tDatasetTDB_alt, new DatasetAssemblerTDB());
- AssemblerUtils.register(ConstAssembler.general(), tGraphTDB, new TDBGraphAssembler(), JA.Model);
- AssemblerUtils.register(ConstAssembler.general(), tGraphTDB_alt, new TDBGraphAssembler(), JA.Model);
+ AssemblerUtils.registerDataset(tDatasetTDB, new DatasetAssemblerTDB2());
+ AssemblerUtils.registerDataset(tDatasetTDB_alt, new DatasetAssemblerTDB2());
+ AssemblerUtils.register(ConstAssembler.general(), tGraphTDB, new TDB2GraphAssembler(), JA.Model);
+ AssemblerUtils.register(ConstAssembler.general(), tGraphTDB_alt, new TDB2GraphAssembler(), JA.Model);
}
}
diff --git a/jena-integration-tests/src/test/java/org/apache/jena/test/assembler/TestDatasetAssembler.java b/jena-integration-tests/src/test/java/org/apache/jena/test/assembler/TestDatasetAssembler.java
index c55b198..d1c2efa 100644
--- a/jena-integration-tests/src/test/java/org/apache/jena/test/assembler/TestDatasetAssembler.java
+++ b/jena-integration-tests/src/test/java/org/apache/jena/test/assembler/TestDatasetAssembler.java
@@ -31,7 +31,7 @@ import org.apache.jena.rdf.model.Property;
import org.apache.jena.rdf.model.Resource;
import org.apache.jena.rdf.model.Statement;
import org.apache.jena.riot.RDFDataMgr;
-import org.apache.jena.sparql.core.DatasetOne;
+import org.apache.jena.sparql.core.DatasetGraphOne;
import org.apache.jena.sparql.core.assembler.AssemblerUtils;
import org.apache.jena.sparql.core.assembler.DatasetAssemblerVocab;
import org.apache.jena.sys.JenaSystem;
@@ -42,10 +42,10 @@ import org.junit.Test;
* Tests of building datasets with assemblers.
*/
public class TestDatasetAssembler {
- static { JenaSystem.init(); }
-
+ static { JenaSystem.init(); }
+
protected static String DIR = "testing/Assembler/";
-
+
static private Model data = RDFDataMgr.loadModel(DIR + "data.ttl");
static private Resource s = data.createResource("http://example/data/s");
static private Property p = data.createProperty("http://example/data/p");
@@ -53,95 +53,95 @@ public class TestDatasetAssembler {
static private Statement stmt = data.createStatement(s, p, o);
// See also jena-arq/etc/...
-
+
// ---- Null dataset assemblers
@Test public void dsg_zero() {
Dataset ds = (Dataset)AssemblerUtils.build(DIR+"assem_dsg_zero.ttl", DatasetAssemblerVocab.tDatasetZero);
assertNotNull(ds);
- try {
+ try {
ds.getDefaultModel().add(stmt);
} catch (UnsupportedOperationException ex) {}
}
-
+
@Test public void dsg_sink() {
Dataset ds = (Dataset)AssemblerUtils.build(DIR+"assem_dsg_sink.ttl", DatasetAssemblerVocab.tDatasetSink);
assertNotNull(ds);
- assertTrue(ds.getContext().isDefined(ARQ.queryTimeout));
+ assertTrue(ds.getContext().isDefined(ARQ.queryTimeout));
ds.getDefaultModel().add(stmt);
assertEquals(0, ds.getDefaultModel().size());
}
// ---- DatasetOneAssembler
-
+
@Test public void dsg1_1() {
Dataset ds = (Dataset)AssemblerUtils.build(DIR+"assem_dsg1_1.ttl", DatasetAssemblerVocab.tDatasetOne);
assertNotNull(ds);
assertNotNull(ds.getDefaultModel());
- assertTrue(ds instanceof DatasetOne);
+ assertTrue(ds.asDatasetGraph() instanceof DatasetGraphOne);
useIt(ds);
}
-
+
@Test public void dsg1_2() {
Dataset ds = (Dataset)AssemblerUtils.build(DIR+"assem_dsg1_2.ttl", DatasetAssemblerVocab.tDatasetOne);
assertNotNull(ds);
assertNotNull(ds.getDefaultModel());
- assertTrue(ds instanceof DatasetOne);
+ assertTrue(ds.asDatasetGraph() instanceof DatasetGraphOne);
readIt(ds);
}
-
+
@Test public void dsg1_3() {
Dataset ds = (Dataset)AssemblerUtils.build(DIR+"assem_dsg1_3.ttl", DatasetAssemblerVocab.tDatasetOne);
assertNotNull(ds);
assertNotNull(ds.getDefaultModel());
- assertTrue(ds instanceof DatasetOne);
+ assertTrue(ds.asDatasetGraph() instanceof DatasetGraphOne);
readIt(ds);
}
-
+
@Test(expected=AssemblerException.class)
- public void dsg1_bad_1() {
+ public void dsg1_bad_1() {
Dataset ds = (Dataset)AssemblerUtils.build(DIR+"assem_dsg1_bad_1.ttl", DatasetAssemblerVocab.tDatasetOne);
assertNotNull(ds);
- }
-
+ }
+
@Test public void dsg1_tdb1() {
Dataset ds = (Dataset)AssemblerUtils.build(DIR+"assem_dsg1_tdb1.ttl", DatasetAssemblerVocab.tDatasetOne);
assertNotNull(ds);
assertNotNull(ds.getDefaultModel());
- assertTrue(ds instanceof DatasetOne);
+ assertTrue(ds.asDatasetGraph() instanceof DatasetGraphOne);
useIt(ds);
}
-
+
@Test public void dsg1_tdb2() {
Dataset ds = (Dataset)AssemblerUtils.build(DIR+"assem_dsg1_tdb2.ttl", DatasetAssemblerVocab.tDatasetOne);
assertNotNull(ds);
assertNotNull(ds.getDefaultModel());
- assertTrue(ds instanceof DatasetOne);
+ assertTrue(ds.asDatasetGraph() instanceof DatasetGraphOne);
useIt(ds);
}
-
+
@Test public void dsg1_inf_tdb1() {
Dataset ds = (Dataset)AssemblerUtils.build(DIR+"assem_dsg1_inf_tdb1.ttl", DatasetAssemblerVocab.tDatasetOne);
assertNotNull(ds);
assertNotNull(ds.getDefaultModel());
- assertTrue(ds instanceof DatasetOne);
+ assertTrue(ds.asDatasetGraph() instanceof DatasetGraphOne);
useIt(ds);
}
-
+
@Test public void dsg1_inf_tdb2() {
Dataset ds = (Dataset)AssemblerUtils.build(DIR+"assem_dsg1_inf_tdb2.ttl", DatasetAssemblerVocab.tDatasetOne);
assertNotNull(ds);
assertNotNull(ds.getDefaultModel());
- assertTrue(ds instanceof DatasetOne);
+ assertTrue(ds.asDatasetGraph() instanceof DatasetGraphOne);
useIt(ds);
}
-
+
private void readIt(Dataset ds) {
Txn.exec(ds, TxnType.READ, ()->{
assertTrue(ds.getDefaultModel().contains(stmt));
});
}
-
+
private void useIt(Dataset ds) {
Txn.executeWrite(ds, ()->{
ds.getDefaultModel().add(data);
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/DatasetAssemblerTDB.java b/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/DatasetAssemblerTDB1.java
similarity index 69%
rename from jena-tdb/src/main/java/org/apache/jena/tdb/assembler/DatasetAssemblerTDB.java
rename to jena-tdb/src/main/java/org/apache/jena/tdb/assembler/DatasetAssemblerTDB1.java
index 9c2feaf..33309d0 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/DatasetAssemblerTDB.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/DatasetAssemblerTDB1.java
@@ -22,13 +22,11 @@ import static org.apache.jena.sparql.util.graph.GraphUtils.exactlyOneProperty ;
import static org.apache.jena.sparql.util.graph.GraphUtils.getStringValue ;
import static org.apache.jena.tdb.assembler.VocabTDB.pLocation ;
import static org.apache.jena.tdb.assembler.VocabTDB.pUnionDefaultGraph ;
+
import org.apache.jena.assembler.Assembler ;
-import org.apache.jena.assembler.Mode ;
import org.apache.jena.assembler.exceptions.AssemblerException ;
import org.apache.jena.atlas.logging.Log ;
import org.apache.jena.graph.Node ;
-import org.apache.jena.query.Dataset ;
-import org.apache.jena.query.DatasetFactory ;
import org.apache.jena.rdf.model.Resource ;
import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.sparql.core.assembler.AssemblerUtils ;
@@ -39,40 +37,39 @@ import org.apache.jena.tdb.TDB ;
import org.apache.jena.tdb.TDBFactory ;
import org.apache.jena.tdb.base.file.Location ;
-public class DatasetAssemblerTDB extends DatasetAssembler
+public class DatasetAssemblerTDB1 extends DatasetAssembler
{
static { JenaSystem.init(); }
-
+
@Override
- public Dataset createDataset(Assembler a, Resource root, Mode mode) {
- return make(root) ;
+ public DatasetGraph createDataset(Assembler a, Resource root) {
+ return make(a, root);
}
- static Dataset make(Resource root) {
+ public static DatasetGraph make(Assembler a, Resource root) {
if ( !exactlyOneProperty(root, pLocation) )
- throw new AssemblerException(root, "No location given") ;
+ throw new AssemblerException(root, "No location given");
- String dir = getStringValue(root, pLocation) ;
- Location loc = Location.create(dir) ;
- DatasetGraph dsg = TDBFactory.createDatasetGraph(loc) ;
+ String dir = getStringValue(root, pLocation);
+ Location loc = Location.create(dir);
+ DatasetGraph dsg = TDBFactory.createDatasetGraph(loc);
if ( root.hasProperty(pUnionDefaultGraph) ) {
- Node b = root.getProperty(pUnionDefaultGraph).getObject().asNode() ;
- NodeValue nv = NodeValue.makeNode(b) ;
+ Node b = root.getProperty(pUnionDefaultGraph).getObject().asNode();
+ NodeValue nv = NodeValue.makeNode(b);
if ( nv.isBoolean() )
- dsg.getContext().set(TDB.symUnionDefaultGraph, nv.getBoolean()) ;
+ dsg.getContext().set(TDB.symUnionDefaultGraph, nv.getBoolean());
else
- Log.warn(DatasetAssemblerTDB.class, "Failed to recognize value for union graph setting (ignored): " + b) ;
+ Log.warn(DatasetAssemblerTDB1.class, "Failed to recognize value for union graph setting (ignored): " + b);
}
/*
- <r> rdf:type tdb:DatasetTDB ;
- tdb:location "dir" ;
- //ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue "10000" ] ;
- tdb:unionGraph true ; # or "true"
- */
+ <r> rdf:type tdb:DatasetTDB2;
+ tdb:location "dir";
+ //ja:context [ ja:cxtName "arq:queryTimeout"; ja:cxtValue "10000" ] ;
+ tdb:unionGraph true; # or "true"
+ */
AssemblerUtils.mergeContext(root, dsg.getContext());
- return DatasetFactory.wrap(dsg) ;
+ return dsg;
}
-
}
diff --git a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/TDBGraphAssembler.java b/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/TDB1GraphAssembler.java
similarity index 66%
rename from jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/TDBGraphAssembler.java
rename to jena-tdb/src/main/java/org/apache/jena/tdb/assembler/TDB1GraphAssembler.java
index a5e8300..572dd70 100644
--- a/jena-db/jena-tdb2/src/main/java/org/apache/jena/tdb2/assembler/TDBGraphAssembler.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/TDB1GraphAssembler.java
@@ -16,35 +16,39 @@
* limitations under the License.
*/
-package org.apache.jena.tdb2.assembler;
+package org.apache.jena.tdb.assembler;
-import static org.apache.jena.sparql.util.graph.GraphUtils.getAsStringValue;
-import static org.apache.jena.sparql.util.graph.GraphUtils.getResourceValue;
-import static org.apache.jena.sparql.util.graph.GraphUtils.getStringValue;
-import static org.apache.jena.tdb2.assembler.VocabTDB2.*;
+import static org.apache.jena.sparql.util.graph.GraphUtils.getAsStringValue ;
+import static org.apache.jena.sparql.util.graph.GraphUtils.getResourceValue ;
+import static org.apache.jena.sparql.util.graph.GraphUtils.getStringValue ;
+import static org.apache.jena.tdb.assembler.VocabTDB.*;
-import org.apache.jena.assembler.Assembler;
-import org.apache.jena.assembler.Mode;
-import org.apache.jena.assembler.assemblers.AssemblerBase;
-import org.apache.jena.assembler.exceptions.AssemblerException;
-import org.apache.jena.atlas.logging.Log;
-import org.apache.jena.dboe.base.file.Location;
-import org.apache.jena.query.Dataset;
+import org.apache.jena.assembler.Assembler ;
+import org.apache.jena.assembler.Mode ;
+import org.apache.jena.assembler.assemblers.AssemblerBase ;
+import org.apache.jena.assembler.exceptions.AssemblerException ;
+import org.apache.jena.atlas.logging.Log ;
+import org.apache.jena.graph.Graph;
+import org.apache.jena.graph.NodeFactory;
import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.rdf.model.Resource;
-import org.apache.jena.tdb2.TDB2;
-import org.apache.jena.tdb2.TDB2Factory;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sys.JenaSystem;
+import org.apache.jena.tdb.TDBFactory ;
+import org.apache.jena.tdb.base.file.Location ;
-public class TDBGraphAssembler extends AssemblerBase implements Assembler
+public class TDB1GraphAssembler extends AssemblerBase implements Assembler
{
+ static { JenaSystem.init(); }
+
@Override
- public Model open(Assembler a, Resource root, Mode mode)
- {
- // In case we go via explicit index construction,
- // although given we got here, the assembler is wired in
- // and that probably means TDB.init
- TDB2.init();
+ public Model open(Assembler a, Resource root, Mode mode) {
+ Graph g = createGraph(a, root, mode);
+ return ModelFactory.createModelForGraph(g);
+ }
+ public Graph createGraph(Assembler a, Resource root, Mode mode) {
// Make a model - the default model of the TDB dataset
// [] rdf:type tdb:GraphTDB;
// tdb:location "dir";
@@ -73,21 +77,21 @@ public class TDBGraphAssembler extends AssemblerBase implements Assembler
if ( root.hasProperty(pIndex) )
Log.warn(this, "Custom indexes not implemented yet - ignored");
- final Dataset ds;
+ DatasetGraph dsg;
if ( locationDir != null )
{
Location location = Location.create(locationDir);
- ds = TDB2Factory.connectDataset(location);
+ dsg = TDBFactory.createDatasetGraph(location);
}
else
- ds = DatasetAssemblerTDB.make(dataset);
+ dsg = DatasetAssemblerTDB1.make(a, dataset);
try {
if ( graphName != null )
- return ds.getNamedModel(graphName);
+ return dsg.getGraph(NodeFactory.createURI(graphName));
else
- return ds.getDefaultModel();
+ return dsg.getDefaultGraph();
} catch (RuntimeException ex)
{
ex.printStackTrace(System.err);
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/TDBGraphAssembler.java b/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/TDBGraphAssembler.java
deleted file mode 100644
index 9dffe04..0000000
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/TDBGraphAssembler.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * 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.apache.jena.tdb.assembler;
-
-import static org.apache.jena.sparql.util.graph.GraphUtils.getAsStringValue ;
-import static org.apache.jena.sparql.util.graph.GraphUtils.getResourceValue ;
-import static org.apache.jena.sparql.util.graph.GraphUtils.getStringValue ;
-import static org.apache.jena.tdb.assembler.VocabTDB.pDataset ;
-import static org.apache.jena.tdb.assembler.VocabTDB.pGraphName1 ;
-import static org.apache.jena.tdb.assembler.VocabTDB.pGraphName2 ;
-import static org.apache.jena.tdb.assembler.VocabTDB.pIndex ;
-import static org.apache.jena.tdb.assembler.VocabTDB.pLocation ;
-
-import org.apache.jena.assembler.Assembler ;
-import org.apache.jena.assembler.Mode ;
-import org.apache.jena.assembler.assemblers.AssemblerBase ;
-import org.apache.jena.assembler.exceptions.AssemblerException ;
-import org.apache.jena.atlas.logging.Log ;
-import org.apache.jena.query.Dataset ;
-import org.apache.jena.rdf.model.* ;
-import org.apache.jena.riot.out.NodeFmtLib ;
-import org.apache.jena.tdb.TDBException ;
-import org.apache.jena.tdb.TDBFactory ;
-import org.apache.jena.tdb.base.file.Location ;
-
-public class TDBGraphAssembler extends AssemblerBase implements Assembler
-{
- static IndexAssembler indexAssembler = null ;
-
- @Override
- public Model open(Assembler a, Resource root, Mode mode)
- {
- // Make a model - the default model of the TDB dataset
- // [] rdf:type tdb:GraphTDB ;
- // tdb:location "dir" ;
-
- // Make a named model.
- // [] rdf:type tdb:GraphTDB ;
- // tdb:location "dir" ;
- // tdb:graphName <http://example/name> ;
-
- // Location or dataset reference.
- String locationDir = getStringValue(root, pLocation) ;
- Resource dataset = getResourceValue(root, pDataset) ;
-
- if ( locationDir != null && dataset != null )
- throw new AssemblerException(root, "Both location and dataset given: exactly one required") ;
-
- if ( locationDir == null && dataset == null )
- throw new AssemblerException(root, "Must give location or refer to a dataset description") ;
-
- String graphName = null ;
- if ( root.hasProperty(pGraphName1) )
- graphName = getAsStringValue(root, pGraphName1) ;
- if ( root.hasProperty(pGraphName2) )
- graphName = getAsStringValue(root, pGraphName2) ;
-
- if ( root.hasProperty(pIndex) )
- Log.warn(this, "Custom indexes not implemented yet - ignored") ;
-
- final Dataset ds ;
-
- if ( locationDir != null )
- {
- Location location = Location.create(locationDir) ;
- ds = TDBFactory.createDataset(location) ;
- }
- else
- ds = DatasetAssemblerTDB.make(dataset) ;
-
- try {
- if ( graphName != null )
- return ds.getNamedModel(graphName) ;
- else
- return ds.getDefaultModel() ;
- } catch (RuntimeException ex)
- {
- ex.printStackTrace(System.err) ;
- throw ex ;
- }
- }
-
- //@Unused
- private void indexes(Resource root)
- {
- // ---- API ways
-
- StmtIterator sIter = root.listProperties(pIndex) ;
- while(sIter.hasNext())
- {
- RDFNode obj = sIter.nextStatement().getObject() ;
- if ( obj.isLiteral() )
- {
- String desc = ((Literal)obj).getString() ;
- System.out.printf("Index: %s\n", desc) ; System.out.flush();
- continue ;
- }
- throw new TDBException("Wrong format for tdb:index: should be a string: found: "+NodeFmtLib.displayStr(obj)) ;
- // Resource x = (Resource)obj ;
- // String desc = x.getProperty(pDescription).getString() ;
- // String file = x.getProperty(pFile).getString() ;
- // System.out.printf("Index: %s in file %s\n", desc, file) ; System.out.flush();
- }
-
- System.out.flush();
- throw new TDBException("Custom indexes turned off") ;
- }
-
-}
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/VocabTDB.java b/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/VocabTDB.java
index 4fcd8bb..b7f9ba1 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/VocabTDB.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/VocabTDB.java
@@ -26,8 +26,8 @@ import org.apache.jena.tdb.TDB ;
public class VocabTDB
{
private static final String NS = TDB.namespace ;
-
- public static String getURI() { return NS ; }
+
+ public static String getURI() { return NS ; }
// Types
public static final Resource tDatasetTDB = Vocab.type(NS, "DatasetTDB") ;
@@ -38,12 +38,12 @@ public class VocabTDB
public static final Property pLocation = Vocab.property(NS, "location") ;
public static final Property pUnionDefaultGraph = Vocab.property(NS, "unionDefaultGraph") ;
-
+
public static final Property pIndex = Vocab.property(NS, "index") ;
public static final Property pGraphName1 = Vocab.property(NS, "graphName") ;
public static final Property pGraphName2 = Vocab.property(NS, "namedGraph") ;
public static final Property pDataset = Vocab.property(NS, "dataset") ;
-
+
public static final Property pNodes = Vocab.property(NS, "nodes") ;
// Indexes
@@ -53,21 +53,21 @@ public class VocabTDB
// Nodes
public static final Property pNodeIndex = Vocab.property(getURI(), "nodeIndex") ;
public static final Property pNodeData = Vocab.property(getURI(), "nodeData") ;
-
+
// Setting
public static final Property pSetting = Vocab.property(getURI(), "setting") ;
public static final Property pName = Vocab.property(getURI(), "name") ;
public static final Property pValue = Vocab.property(getURI(), "value") ;
-
- private static boolean initialized = false ;
-
+
+ private static boolean initialized = false ;
+
static { init() ; }
-
+
static synchronized public void init() {
if ( initialized )
return;
initialized = true;
- AssemblerUtils.registerDataset(tDatasetTDB, new DatasetAssemblerTDB());
- AssemblerUtils.registerModel(tGraphTDB, new TDBGraphAssembler());
+ AssemblerUtils.registerDataset(tDatasetTDB, new DatasetAssemblerTDB1());
+ AssemblerUtils.registerModel(tGraphTDB, new TDB1GraphAssembler());
}
}
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextDatasetAssembler.java b/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextDatasetAssembler.java
index c444feb..1ede105 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextDatasetAssembler.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextDatasetAssembler.java
@@ -27,7 +27,6 @@ import java.lang.reflect.Constructor ;
import org.apache.jena.assembler.Assembler ;
import org.apache.jena.assembler.Mode ;
-import org.apache.jena.assembler.assemblers.AssemblerBase ;
import org.apache.jena.atlas.logging.Log ;
import org.apache.jena.query.Dataset ;
import org.apache.jena.query.text.TextDatasetFactory ;
@@ -36,10 +35,11 @@ import org.apache.jena.query.text.TextIndex ;
import org.apache.jena.rdf.model.Resource ;
import org.apache.jena.sparql.ARQConstants ;
import org.apache.jena.sparql.core.DatasetGraph ;
+import org.apache.jena.sparql.core.assembler.DatasetAssembler;
import org.apache.jena.sparql.util.ClsLoader ;
import org.apache.jena.sparql.util.graph.GraphUtils ;
-public class TextDatasetAssembler extends AssemblerBase implements Assembler
+public class TextDatasetAssembler extends DatasetAssembler implements Assembler
{
public static Resource getType() { return textDataset ; }
@@ -52,6 +52,12 @@ public class TextDatasetAssembler extends AssemblerBase implements Assembler
*/
@Override
+ public DatasetGraph createDataset(Assembler a, Resource root) {
+ // Should have come via open();
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
public Dataset open(Assembler a, Resource root, Mode mode)
{
Resource dataset = GraphUtils.getResourceValue(root, pDataset) ;
@@ -95,6 +101,5 @@ public class TextDatasetAssembler extends AssemblerBase implements Assembler
return null;
}
}
-
}