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 2016/01/04 21:36:32 UTC
[3/6] jena git commit: Consolidate dataset impl registration process
into one place.
Consolidate dataset impl registration process into one place.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/6188b087
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/6188b087
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/6188b087
Branch: refs/heads/master
Commit: 6188b08753a21d9d8e38577b6d984abbba79b86a
Parents: a29f2c7
Author: Andy Seaborne <an...@apache.org>
Authored: Mon Jan 4 20:28:12 2016 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Mon Jan 4 20:28:50 2016 +0000
----------------------------------------------------------------------
.../sparql/core/assembler/AssemblerUtils.java | 57 +++++++++++-------
.../assembler/TestInMemDatasetAssembler.java | 7 +--
.../apache/jena/tdb/assembler/AssemblerTDB.java | 2 -
.../jena/tdb/assembler/NodeTableAssembler.java | 61 --------------------
.../org/apache/jena/tdb/assembler/VocabTDB.java | 35 +++--------
5 files changed, 47 insertions(+), 115 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/6188b087/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/AssemblerUtils.java
----------------------------------------------------------------------
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 5d47217..0378867 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
@@ -24,6 +24,7 @@ import org.apache.jena.assembler.JA ;
import org.apache.jena.assembler.assemblers.AssemblerGroup ;
import org.apache.jena.query.* ;
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.rdf.model.ResourceFactory ;
import org.apache.jena.riot.RDFDataMgr ;
@@ -35,6 +36,7 @@ import org.apache.jena.sparql.util.Symbol ;
import org.apache.jena.sparql.util.TypeNotUniqueException ;
import org.apache.jena.sparql.util.graph.GraphUtils ;
import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.vocabulary.RDFS ;
public class AssemblerUtils
{
@@ -55,38 +57,53 @@ public class AssemblerUtils
return ;
initialized = true ;
// Wire in the extension assemblers (extensions relative to the Jena assembler framework)
- // Do NOT use Assembler.gemneral here (may not be initialized).
- registerWith(ConstAssembler.general()) ;
+ registerDataset(DatasetAssembler.getType(), new DatasetAssembler()) ;
+ registerDataset(InMemDatasetAssembler.getType(), new InMemDatasetAssembler()) ;
+ registerDataset(DatasetNullAssembler.getType(), new DatasetNullAssembler()) ;
}
- static public void registerWith(AssemblerGroup g)
- {
- // Wire in the extension assemblers (extensions relative to the Jena assembler framework)
- g.implementWith(DatasetAssembler.getType(), new DatasetAssembler()) ;
- g.implementWith(DatasetNullAssembler.getType(), new DatasetNullAssembler()) ;
+ private static Model modelExtras = ModelFactory.createDefaultModel() ;
+
+ /** Register an assembler that creates a dataset */
+ static public void registerDataset(Resource r, Assembler a) {
+ register(ConstAssembler.general(), r, a, DatasetAssembler.getType()) ;
+ }
+
+ /** Register an addition assembler */
+ static public void register(AssemblerGroup g, Resource r, Assembler a, Resource superType) {
+ registerAssembler(g, r, a) ;
+ if ( superType != null && ! superType.equals(r) )
+ modelExtras.add(r, RDFS.subClassOf, DatasetAssembler.getType()) ;
}
- private static void assemblerClass(AssemblerGroup g, Resource r, Assembler a)
- {
- g.implementWith(r, a) ;
+ /** register */
+ public static void registerAssembler(AssemblerGroup group, Resource r, Assembler a) {
+ if ( group == null )
+ group = ConstAssembler.general();
+ group.implementWith(r, a);
+ // assemblerAssertions.add(r, RDFS.subClassOf, JA.Object) ;
+ }
+
+ public static Model readAssemblerFile(String assemblerFile) {
+ Model spec = null ;
+ try {
+ spec = RDFDataMgr.loadModel(assemblerFile) ;
+ } catch (Exception ex)
+ { throw new ARQException("Failed reading assembler description: "+ex.getMessage()) ; }
+ spec.add(modelExtras) ;
+ return spec ;
}
- public static Object build(String assemblerFile, String typeURI)
- {
+ public static Object build(String assemblerFile, String typeURI) {
Resource type = ResourceFactory.createResource(typeURI) ;
return build(assemblerFile, type) ;
}
- public static Object build(String assemblerFile, Resource type)
- {
+ public static Object build(String assemblerFile, Resource type) {
if ( assemblerFile == null )
throw new ARQException("No assembler file") ;
- Model spec = null ;
- try {
- spec = RDFDataMgr.loadModel(assemblerFile) ;
- } catch (Exception ex)
- { throw new ARQException("Failed reading assembler description: "+ex.getMessage()) ; }
-
+ Model spec = readAssemblerFile(assemblerFile) ;
+
Resource root = null ;
try {
root = GraphUtils.findRootByType(spec, type) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/6188b087/jena-arq/src/test/java/org/apache/jena/sparql/core/assembler/TestInMemDatasetAssembler.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/core/assembler/TestInMemDatasetAssembler.java b/jena-arq/src/test/java/org/apache/jena/sparql/core/assembler/TestInMemDatasetAssembler.java
index 245b252..29644b6 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/core/assembler/TestInMemDatasetAssembler.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/core/assembler/TestInMemDatasetAssembler.java
@@ -19,7 +19,6 @@
package org.apache.jena.sparql.core.assembler;
import static java.nio.file.Files.createTempFile;
-import static org.apache.jena.assembler.JA.MemoryDataset ;
import static org.apache.jena.assembler.JA.MemoryModel ;
import static org.apache.jena.assembler.JA.data ;
import static org.apache.jena.assembler.Mode.DEFAULT;
@@ -69,7 +68,7 @@ public class TestInMemDatasetAssembler extends Assert {
public void emptyDataset() {
final Model model = createDefaultModel();
final Resource empty = model.createResource("test:empty");
- empty.addProperty(type, MemoryDataset);
+ empty.addProperty(type, DatasetAssemblerVocab.tDatasetTxnMem) ;
Dataset dataset = assemble(empty) ;
assertFalse(dataset.asDatasetGraph().find().hasNext()) ;
}
@@ -81,7 +80,7 @@ public class TestInMemDatasetAssembler extends Assert {
final Path triples = createTempFile("simpleExample", ".nt");
final Resource triplesURI = model.createResource(triples.toFile().toURI().toString());
final Resource simpleExample = model.createResource("test:simpleExample");
- simpleExample.addProperty(type, MemoryDataset);
+ simpleExample.addProperty(type, DatasetAssemblerVocab.tDatasetTxnMem);
// add a default graph
simpleExample.addProperty(data, triplesURI);
// add a named graph
@@ -120,7 +119,7 @@ public class TestInMemDatasetAssembler extends Assert {
final Path quads = createTempFile("quadExample", ".nq");
final Resource quadsURI = model.createResource(quads.toFile().toURI().toString());
final Resource simpleExample = model.createResource("test:simpleExample");
- simpleExample.addProperty(type, MemoryDataset);
+ simpleExample.addProperty(type, DatasetAssemblerVocab.tDatasetTxnMem);
simpleExample.addProperty(data, quadsURI);
final DatasetGraph dsg = createTxnMem().asDatasetGraph();
http://git-wip-us.apache.org/repos/asf/jena/blob/6188b087/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/AssemblerTDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/AssemblerTDB.java b/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/AssemblerTDB.java
index de1e6f6..b8778bf 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/AssemblerTDB.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/AssemblerTDB.java
@@ -23,7 +23,5 @@ public class AssemblerTDB
public static void init()
{
VocabTDB.init();
- //tdb:DatasetTDB rdfs:subClassOf ja:RDFDataset .
- //tdb:GraphTDB rdfs:subClassOf ja:Model .
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/6188b087/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/NodeTableAssembler.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/NodeTableAssembler.java b/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/NodeTableAssembler.java
deleted file mode 100644
index 5e4fed2..0000000
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/NodeTableAssembler.java
+++ /dev/null
@@ -1,61 +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.tdb.assembler.VocabTDB.pNodeIndex ;
-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.rdf.model.Resource ;
-import org.apache.jena.tdb.store.nodetable.NodeTable ;
-
-public class NodeTableAssembler extends AssemblerBase //implements Assembler
-{
- // ???
- /*
- * [ :location "...." ]
- * or (TBD)
- * [ :nodeIndex "..." ;
- * :nodeData "..." ;
- * ]
- */
-
-
- //private Location location = null ;
-
- //public NodeTableAssembler() { this.location = Location.create(".") ; }
- //public NodeTableAssembler(Location location) { this.location = location ; }
-
- public NodeTableAssembler() { }
-
- @Override
- public NodeTable open(Assembler a, Resource root, Mode mode)
- {
- String location = getAsStringValue(root, pNodeIndex) ;
-// if ( location != null )
-// return NodeTableFactory.create(IndexBuilder.get(), Location.create(location)) ;
-//
-// String nodeIndex = getAsStringValue(root, pNodeIndex) ;
-// String nodeData = getAsStringValue(root, pNodeData) ;
-//
- throw new AssemblerException(root, "Split location index/data file not yet implemented") ;
- }
-}
http://git-wip-us.apache.org/repos/asf/jena/blob/6188b087/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/VocabTDB.java
----------------------------------------------------------------------
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 52444f2..d24b263 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
@@ -19,11 +19,11 @@
package org.apache.jena.tdb.assembler;
-import org.apache.jena.assembler.Assembler ;
import org.apache.jena.assembler.ConstAssembler ;
-import org.apache.jena.assembler.assemblers.AssemblerGroup ;
+import org.apache.jena.assembler.JA ;
import org.apache.jena.rdf.model.Property ;
import org.apache.jena.rdf.model.Resource ;
+import org.apache.jena.sparql.core.assembler.AssemblerUtils ;
import org.apache.jena.tdb.TDB ;
public class VocabTDB
@@ -66,32 +66,11 @@ public class VocabTDB
static { init() ; }
- static synchronized public void init()
- {
+ static synchronized public void init() {
if ( initialized )
- return ;
- initialized = true ;
- // Do NOT use Assembler.gemneral here (may not be initialized).
- registerWith(ConstAssembler.general()) ;
- }
-
- static void registerWith(AssemblerGroup g)
- {
- // Wire in the extension assemblers (extensions relative to the Jena assembler framework)
- // Domain and range for properties.
- // Separated and use ja:imports
- assemblerClass(g, tDatasetTDB, new DatasetAssemblerTDB()) ;
-
- assemblerClass(g, tGraphTDB, new TDBGraphAssembler()) ;
- //assemblerClass(g, typeGraphBDB, ?????) ;
- assemblerClass(g, tNodeTable, new NodeTableAssembler()) ;
- }
-
- public static void assemblerClass(AssemblerGroup group, Resource r, Assembler a)
- {
- if ( group == null )
- group = ConstAssembler.general() ;
- group.implementWith(r, a) ;
- //assemblerAssertions.add(r, RDFS.subClassOf, JA.Object) ;
+ return;
+ initialized = true;
+ AssemblerUtils.registerDataset(tDatasetTDB, new DatasetAssemblerTDB());
+ AssemblerUtils.register(ConstAssembler.general(), tGraphTDB, new TDBGraphAssembler(), JA.Model);
}
}