private long executeDelete() { List<STMT> stmts = getTriples(clause.getTemplate(), clause.getPattern()); connection.update(stmts, null); return 0l; }
private long executeInsert() { List<STMT> stmts = getTriples(clause.getTemplate(), clause.getPattern()); connection.update(null, stmts); return 0l; }
private long executeModify() { List<STMT> added = null, removed = null; if (clause.getInsert() != null) { added = getTriples(clause.getInsert(), clause.getPattern()); } if (clause.getDelete() != null) { removed = getTriples(clause.getDelete(), clause.getPattern()); } connection.update(removed, added); return 0l; }
@Test public void Delete_From_Where() throws IOException { UpdateClause delete = parse("DELETE FROM <http://ex1.com> { ?s rdf:type rdfs:Class } WHERE { ?s ?p ?o }"); assertEquals(UpdateClause.Type.DELETE, delete.getType()); assertEquals("?s rdf:type rdfs:Class", delete.getTemplate()); assertEquals("?s ?p ?o", delete.getPattern()); assertEquals(ex1, delete.getFrom().get(0)); }
@Test public void Delete_From_From_Where() throws IOException { UpdateClause delete = parse("DELETE FROM <http://ex1.com> FROM <http://ex2.com> { ?s rdf:type rdfs:Class } WHERE { ?s ?p ?o }"); assertEquals(UpdateClause.Type.DELETE, delete.getType()); assertEquals("?s rdf:type rdfs:Class", delete.getTemplate()); assertEquals("?s ?p ?o", delete.getPattern()); assertEquals(ex1, delete.getFrom().get(0)); }
@Test public void Insert_Into_Into_Where() throws IOException { // INSERT [ INTO <uri> ]* { template } [ WHERE { pattern } ] UpdateClause insert = parse("INSERT INTO <http://ex1.com> INTO <http://ex2.com> { ?s rdf:type rdfs:Class } WHERE { ?s ?p ?o }"); assertEquals(UpdateClause.Type.INSERT, insert.getType()); assertEquals("?s rdf:type rdfs:Class", insert.getTemplate()); assertEquals("?s ?p ?o", insert.getPattern()); assertEquals(Arrays.asList(ex1, ex2), insert.getInto()); }
@Test public void Insert_Into_Where() throws IOException { // INSERT [ INTO <uri> ]* { template } [ WHERE { pattern } ] UpdateClause insert = parse("INSERT INTO <http://ex1.com> { ?s rdf:type rdfs:Class } WHERE { ?s ?p ?o }"); assertEquals(UpdateClause.Type.INSERT, insert.getType()); assertEquals("?s rdf:type rdfs:Class", insert.getTemplate()); assertEquals("?s ?p ?o", insert.getPattern()); assertEquals(ex1, insert.getInto().get(0)); }
@Test public void Delete_Where() throws IOException { // DELETE [ FROM <uri> ]* { template } [ WHERE { pattern } ] UpdateClause delete = parse("DELETE { ?s rdf:type rdfs:Class } WHERE { ?s ?p ?o }"); assertEquals(UpdateClause.Type.DELETE, delete.getType()); assertEquals("?s rdf:type rdfs:Class", delete.getTemplate()); assertEquals("?s ?p ?o", delete.getPattern()); }
@Test public void Insert_Where() throws IOException { // INSERT [ INTO <uri> ]* { template } [ WHERE { pattern } ] UpdateClause insert = parse("INSERT { ?s rdf:type rdfs:Class } WHERE { ?s ?p ?o }"); assertEquals(UpdateClause.Type.INSERT, insert.getType()); assertEquals("?s rdf:type rdfs:Class", insert.getTemplate()); assertEquals("?s ?p ?o", insert.getPattern()); }
@Test public void Modify_Where() throws IOException { UpdateClause modify = parse("MODIFY DELETE { ?s ?p ?o } INSERT { ?s2 ?p2 ?o2 } WHERE { ?s3 ?p3 ?o3 }"); assertEquals(UpdateClause.Type.MODIFY, modify.getType()); assertEquals("?s ?p ?o", modify.getDelete()); assertEquals("?s2 ?p2 ?o2", modify.getInsert()); assertEquals("?s3 ?p3 ?o3", modify.getPattern()); }