public static UpdateDeleteInsert clone(UpdateDeleteInsert update) { UpdateDeleteInsert result = new UpdateDeleteInsert(); result.setElement(update.getWherePattern()); result.setWithIRI(update.getWithIRI()); for(Quad quad : update.getDeleteQuads()) { result.getDeleteAcc().addQuad(quad); } for(Quad quad : update.getInsertQuads()) { result.getInsertAcc().addQuad(quad); } for(Node node : update.getUsing()) { result.addUsing(node); } for(Node node : update.getUsingNamed()) { result.addUsingNamed(node); } return result; }
public static UpdateDeleteInsert createUpdateRename(Node before, Node after, int i) { Node[] deleteTerms = { Quad.defaultGraphIRI, Vars.s, Vars.p, Vars.o }; deleteTerms[i] = before; Quad deleteQuad = QuadUtils.arrayToQuad(deleteTerms); Node[] insertTerms = { Quad.defaultGraphIRI, Vars.s, Vars.p, Vars.o }; insertTerms[i] = after; Quad insertQuad = QuadUtils.arrayToQuad(insertTerms); UpdateDeleteInsert result = new UpdateDeleteInsert(); result.getDeleteAcc().addQuad(deleteQuad); result.getInsertAcc().addQuad(insertQuad); result.setElement(ElementUtils.createElement(deleteQuad)); return result; }
public static void fixVarNames(UpdateRequest updateRequest) { List<Update> updates = updateRequest.getOperations(); for(Update update : updates) { if(update instanceof UpdateDeleteInsert) { UpdateDeleteInsert x = (UpdateDeleteInsert)update; Element before = x.getWherePattern(); Element after = ElementUtils.fixVarNames(before); x.setElement(after); } else if(update instanceof UpdateModify) { UpdateModify x = (UpdateModify)update; Element before = x.getWherePattern(); Element after = ElementUtils.fixVarNames(before); x.setElement(after); } } }
/** * This code is equivalent to the SPARQL query below. * * <p><pre><code> * WITH trellis:PreferServerManaged * DELETE { IDENTIFIER dc:modified ?time } * INSERT { IDENTIFIER dc:modified TIME } * WHERE { IDENTIFIER dc:modified ?time } . * </code></pre></p> */ private UpdateRequest buildUpdateModificationRequest(final IRI identifier, final Literal time) { final UpdateRequest req = new UpdateRequest(); final Var modified = Var.alloc(MODIFIED); final UpdateDeleteInsert modify = new UpdateDeleteInsert(); modify.setWithIRI(rdf.asJenaNode(PreferServerManaged)); modify.getDeleteAcc().addTriple(triple(rdf.asJenaNode(identifier), rdf.asJenaNode(DC.modified), modified)); modify.getInsertAcc().addTriple(triple(rdf.asJenaNode(identifier), rdf.asJenaNode(DC.modified), rdf.asJenaNode(time))); final ElementGroup eg = new ElementGroup(); final ElementPathBlock epb = new ElementPathBlock(); epb.addTriple(triple(rdf.asJenaNode(identifier), rdf.asJenaNode(DC.modified), modified)); eg.addElement(epb); modify.setElement(eg); req.add(modify); return req; }
/** * This code is equivalent to the SPARQL query below. * * <p><pre><code> * WITH trellis:PreferServerManaged * DELETE { IDENTIFIER dc:modified ?time } * INSERT { IDENTIFIER dc:modified TIME } * WHERE { IDENTIFIER dc:modified ?time } . * </code></pre></p> */ private UpdateRequest buildUpdateModificationRequest(final IRI identifier, final Literal time) { final UpdateRequest req = new UpdateRequest(); final Var modified = Var.alloc(MODIFIED); final UpdateDeleteInsert modify = new UpdateDeleteInsert(); modify.setWithIRI(rdf.asJenaNode(PreferServerManaged)); modify.getDeleteAcc().addTriple(triple(rdf.asJenaNode(identifier), rdf.asJenaNode(DC.modified), modified)); modify.getInsertAcc().addTriple(triple(rdf.asJenaNode(identifier), rdf.asJenaNode(DC.modified), rdf.asJenaNode(time))); final ElementGroup eg = new ElementGroup(); final ElementPathBlock epb = new ElementPathBlock(); epb.addTriple(triple(rdf.asJenaNode(identifier), rdf.asJenaNode(DC.modified), modified)); eg.addElement(epb); modify.setElement(eg); req.add(modify); return req; }