VIVO-773 create BulkUpdatingModel and OntModel as decorators.

Clean up the code, and no need to copy from Jena source files.
This commit is contained in:
Jim Blake 2014-06-13 16:07:56 -04:00
parent ecbee098cb
commit 338dd6344a
3 changed files with 204 additions and 3171 deletions

View file

@ -10,14 +10,12 @@ import java.util.Iterator;
import java.util.List;
import com.hp.hpl.jena.graph.BulkUpdateHandler;
import com.hp.hpl.jena.graph.Graph;
import com.hp.hpl.jena.graph.Triple;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.RDFReaderF;
import com.hp.hpl.jena.rdf.model.Statement;
import com.hp.hpl.jena.rdf.model.StmtIterator;
import com.hp.hpl.jena.rdf.model.impl.ModelCom;
import com.hp.hpl.jena.rdf.model.impl.RDFReaderFImpl;
import com.hp.hpl.jena.rdf.model.impl.StatementImpl;
import com.hp.hpl.jena.shared.WrappedIOException;
@ -27,19 +25,13 @@ import com.hp.hpl.jena.util.iterator.Map1;
* A model that still handles bulk updates in the old-fashioned way: with a
* BulkUpdateHandler.
*/
public class BulkUpdatingModel extends ModelCom {
public class BulkUpdatingModel extends AbstractModelDecorator {
private static final RDFReaderF readerFactory = new RDFReaderFImpl();
private final BulkUpdateHandler buh;
@SuppressWarnings("deprecation")
public BulkUpdatingModel(Graph base) {
super(base);
this.buh = base.getBulkUpdateHandler();
}
public BulkUpdatingModel(Graph base, BulkUpdateHandler buh) {
super(base);
public BulkUpdatingModel(Model inner, BulkUpdateHandler buh) {
super(inner);
this.buh = buh;
}

View file

@ -2,6 +2,8 @@
package edu.cornell.mannlib.vitro.webapp.rdfservice.adapters;
import static com.hp.hpl.jena.ontology.OntModelSpec.OWL_MEM;
import com.hp.hpl.jena.graph.BulkUpdateHandler;
import com.hp.hpl.jena.graph.Graph;
import com.hp.hpl.jena.ontology.OntModel;
@ -12,31 +14,45 @@ import com.hp.hpl.jena.rdf.model.ModelFactory;
* Make models that will do proper bulk updates.
*/
public class VitroModelFactory {
public static OntModel createOntologyModel() {
return new BulkUpdatingOntModel();
public static Model createModel() {
return ModelFactory.createDefaultModel();
}
public static OntModel createOntologyModel() {
return ModelFactory.createOntologyModel(OWL_MEM);
}
public static OntModel createOntologyModel(Model model) {
return new BulkUpdatingOntModel(model);
@SuppressWarnings("deprecation")
BulkUpdateHandler buh = model.getGraph().getBulkUpdateHandler();
OntModel ontModel = ModelFactory.createOntologyModel(OWL_MEM, model);
return new BulkUpdatingOntModel(ontModel, buh);
}
public static Model createUnion(Model baseModel, Model otherModel) {
@SuppressWarnings("deprecation")
BulkUpdateHandler buh = baseModel.getGraph().getBulkUpdateHandler();
Graph unionGraph = ModelFactory.createUnion(baseModel, otherModel)
.getGraph();
return new BulkUpdatingModel(unionGraph, buh);
Model unionModel = ModelFactory.createUnion(baseModel, otherModel);
return new BulkUpdatingModel(unionModel, buh);
}
public static OntModel createUnion(OntModel baseModel, OntModel otherModel) {
return new BulkUpdatingOntModel(createUnion((Model) baseModel,
(Model) otherModel));
@SuppressWarnings("deprecation")
BulkUpdateHandler buh = baseModel.getGraph().getBulkUpdateHandler();
Model unionModel = createUnion((Model) baseModel, (Model) otherModel);
OntModel unionOntModel = ModelFactory.createOntologyModel(OWL_MEM,
unionModel);
return new BulkUpdatingOntModel(unionOntModel, buh);
}
public static Model createModelForGraph(Graph g) {
return new BulkUpdatingModel(g);
@SuppressWarnings("deprecation")
BulkUpdateHandler buh = g.getBulkUpdateHandler();
return new BulkUpdatingModel(ModelFactory.createModelForGraph(g), buh);
}
}