private static Collection<ConstraintViolationException> validateUpdateRequest(final UpdateRequest request) { return request.getOperations().stream() .flatMap(x -> { if (x instanceof UpdateModify) { final UpdateModify y = (UpdateModify) x; return concat(y.getInsertQuads().stream(), y.getDeleteQuads().stream()); } else if (x instanceof UpdateData) { return ((UpdateData) x).getQuads().stream(); } else if (x instanceof UpdateDeleteWhere) { return ((UpdateDeleteWhere) x).getQuads().stream(); } else { return empty(); } }) .map(x -> x.asTriple()) .flatMap(FedoraResourceImpl::validateTriple) .filter(x -> x != null) .collect(Collectors.toList()); }
@Override public boolean equalTo(Update obj, NodeIsomorphismMap isoMap) { if (this == obj) return true ; if (obj == null) return false ; if (getClass() != obj.getClass()) return false ; UpdateModify other = (UpdateModify)obj ; if ( hasDelete != other.hasDelete ) return false ; if ( hasInsert != other.hasInsert ) return false ; if ( ! equalIso(other, isoMap)) return false ; if ( ! Iso.isomorphicQuads(getDeleteQuads(), other.getDeleteQuads(), isoMap) ) return false ; if ( ! Iso.isomorphicQuads(getInsertQuads(), other.getInsertQuads(), isoMap) ) return false ; if ( ! wherePattern.equalTo(other.wherePattern, isoMap) ) return false ; return true ; } }
final UpdateModify op = (UpdateModify) operation; deleteQuads.addAll(op.getDeleteQuads()); updateQuads.addAll(op.getInsertQuads()); } else if (operation instanceof UpdateData) { final UpdateData op = (UpdateData) operation;
List<Quad> quads = update.getInsertQuads(); Element element = update.getWherePattern();
Binding binding = rs.nextBinding(); Set<Quad> i = QueryUtils.instanciate(update.getInsertQuads(), binding); Set<Quad> d = QueryUtils.instanciate(update.getDeleteQuads(), binding);
public static Iterator<Diff<Set<Quad>>> createIteratorDiff(QueryExecutionFactory qef, UpdateModify update, int batchSize) { Element wherePattern = update.getWherePattern(); Query query = QueryUtils.elementToQuery(wherePattern); // TODO Limit and offset... QueryExecution qe = qef.createQueryExecution(query); ExtendedIterator<Binding> itBinding = ResultSetUtils.toIteratorBinding(qe); Iterator<List<Binding>> itBindingChunk = Iterators.partition(itBinding, batchSize); Diff<List<Quad>> template = new Diff<List<Quad>>(update.getInsertQuads(), update.getDeleteQuads(), null); Iterator<Diff<Set<Quad>>> result = createIteratorDiff(itBindingChunk, template); //QuadDiffIterator result = new QuadDiffIterator(itBindingChunk, template); return result; }
public static UpdateModify cloneUpdateModify(UpdateModify update) { UpdateModify result = new UpdateModify(); result.getUsing().addAll(update.getUsing()); result.setWithIRI(update.getWithIRI()); result.setElement(update.getWherePattern()); for(Quad quad : update.getInsertQuads()) { result.getInsertAcc().addQuad(quad); } for(Quad quad : update.getDeleteQuads()) { result.getDeleteAcc().addQuad(quad); } return result; } }
@Override public void visit(UpdateModify update) { Element el = update.getWherePattern() ; Element el2 = ElementTransformer.transform(el, elTransform, exprTransform) ; List<Quad> del = update.getDeleteQuads() ; List<Quad> del1 = transform(del) ; List<Quad> ins = update.getInsertQuads() ; List<Quad> ins1 = transform(ins) ; UpdateModify mod = new UpdateModify() ; addAll(mod.getDeleteAcc(), del1) ; addAll(mod.getInsertAcc(), ins1) ; result = mod ; }
@Override public void visit(UpdateModify update) { Element el = update.getWherePattern() ; Element el2 = ElementTransformer.transform(el, elTransform, exprTransform) ; List<Quad> del = update.getDeleteQuads() ; List<Quad> del1 = transform(del) ; List<Quad> ins = update.getInsertQuads() ; List<Quad> ins1 = transform(ins) ; UpdateModify mod = new UpdateModify() ; addAll(mod.getDeleteAcc(), del1) ; addAll(mod.getInsertAcc(), ins1) ; mod.setElement(el2); result = mod ; }
execInsert(datasetGraph, update.getInsertQuads(), withGraph, it2); Iter.close(it2);
List<Quad> insertQuads = update.getInsertQuads() ; out.ensureStartOfLine() ; out.print("INSERT ") ;