From 295ddbfad15724c5e14edb6fc7d57efd2689231e Mon Sep 17 00:00:00 2001 From: brianjlowe Date: Fri, 11 Dec 2015 20:37:56 +0200 Subject: [PATCH] add/remove ABox portion of mixed RDF through RDFService --- .../controller/jena/RDFUploadController.java | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/RDFUploadController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/RDFUploadController.java index 037b7152d..bcdc408b2 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/RDFUploadController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/RDFUploadController.java @@ -44,6 +44,7 @@ import edu.cornell.mannlib.vitro.webapp.dao.jena.event.BulkUpdateEvent; import edu.cornell.mannlib.vitro.webapp.dao.jena.event.EditEvent; import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelAccess; import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelAccess.WhichService; +import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelNames; import edu.cornell.mannlib.vitro.webapp.rdfservice.ChangeSet; import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService; import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException; @@ -202,9 +203,20 @@ public class RDFUploadController extends JenaIngestController { } if (aboxModel != null) { aboxChangeModel = uploadModel.remove(tboxChangeModel); - aboxstmtCount = operateOnModel(request.getUnfilteredWebappDaoFactory(), - aboxModel, aboxChangeModel, ontModelSelector, - remove, makeClassgroups, loginBean.getUserURI()); + aboxstmtCount = aboxChangeModel.size(); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + aboxChangeModel.write(os, "N3"); + ByteArrayInputStream in = new ByteArrayInputStream(os.toByteArray()); + if(!remove) { + readIntoModel(in, "N3", request.getRDFService(), + ModelNames.ABOX_ASSERTIONS); + } else { + removeFromModel(in, "N3", request.getRDFService(), + ModelNames.ABOX_ASSERTIONS); + } +// operateOnModel(request.getUnfilteredWebappDaoFactory(), +// aboxModel, aboxChangeModel, ontModelSelector, +// remove, makeClassgroups, loginBean.getUserURI()); } request.setAttribute("uploadDesc", uploadDesc + ". " + verb + " " + (tboxstmtCount + aboxstmtCount) + " statements."); @@ -418,6 +430,18 @@ public class RDFUploadController extends JenaIngestController { } } + private void removeFromModel(InputStream in, String language, + RDFService rdfService, String modelName) { + ChangeSet cs = makeChangeSet(rdfService); + cs.addRemoval(in, RDFServiceUtils.getSerializationFormatFromJenaString( + language), modelName); + try { + rdfService.changeSetUpdate(cs); + } catch (RDFServiceException e) { + throw new RuntimeException(e); + } + } + private void forwardToFileUploadError( String errrorMsg , HttpServletRequest req, HttpServletResponse response)