@Override protected boolean hasNext() throws JspTagException { boolean result = false; try { logger.debug("iteration hasNext()?"); result = items.hasNext(); } catch (Exception e) { logger.debug("iteration.hasNext() threw Exception"); throw new JspTagException(e); } return result; }
@Override protected Object next() throws JspTagException { Object result = null; try { logger.debug("iteration next()..."); result = items.next(); if(result == null) { logger.debug("iteration.next() returned null"); } } catch (Exception e) { logger.debug("iteration.next() threw Exception"); throw new JspTagException(e); } return result; }
/** * * @param arg2 the iteration with elements to add to the includeSet * @param includeSet the set that should have all unique elements of arg2 * @param used the collection size counter of all collections used in answering a query * @param maxSize the point at which we throw a new query exception * @return the includeSet * @throws QueryEvaluationException trigerred when maxSize is smaller than the used value */ public static Set<BindingSet> addAll(Iteration<? extends BindingSet, ? extends QueryEvaluationException> arg2, Set<BindingSet> includeSet, AtomicLong used, long maxSize) throws QueryEvaluationException { while (arg2.hasNext()) { if (includeSet.add(arg2.next()) && used.incrementAndGet() > maxSize) throw new QueryEvaluationException("Size limited reached inside intersect operator"); } return includeSet; }
private void visitInsert(Resource insert) throws OpenRDFException { Iteration<? extends Resource, QueryEvaluationException> groupIter = Statements.listResources(insert, store); while (groupIter.hasNext()) { Resource r = groupIter.next(); Value type = Statements.singleValue(r, RDF.TYPE, store); visitPattern(r, (type != null) ? Collections.singleton((IRI)type) : Collections.<IRI> emptySet()); } }
private void visitDelete(Resource delete) throws OpenRDFException { Iteration<? extends Resource, QueryEvaluationException> groupIter = Statements.listResources(delete, store); while (groupIter.hasNext()) { Resource r = groupIter.next(); Value type = Statements.singleValue(r, RDF.TYPE, store); visitPattern(r, (type != null) ? Collections.singleton((IRI)type) : Collections.<IRI> emptySet()); } }
private Order visitOrderBy(Resource orderby) throws OpenRDFException { Order order = new Order(); Iteration<? extends Resource, QueryEvaluationException> iter = Statements.listResources(orderby, store); while (iter.hasNext()) { Resource r = iter.next(); OrderElem orderElem = visitOrderByCondition(r); order.addElement(orderElem); } return order; }
private void visitGroupBy(Resource groupby) throws OpenRDFException { if (group == null) { group = new Group(); } Iteration<? extends Resource, QueryEvaluationException> iter = Statements.listResources(groupby, store); while (iter.hasNext()) { Resource r = iter.next(); ValueExpr groupByExpr = visitExpression(r); if (!(groupByExpr instanceof Var)) { // TODO // have to create an intermediate Var/Extension for the // expression throw new UnsupportedOperationException("TODO!"); } group.addGroupBindingName(((Var)groupByExpr).getName()); } }
@Override public <E extends Exception> void remove( Iteration<? extends Statement, E> statementIter, Resource... contexts) throws RepositoryException, E { //Removes the supplied statements from a specific context in this repository, //ignoring any context information carried by the statements themselves. begin(); try { while (statementIter.hasNext()) { remove(statementIter.next(), contexts); } } catch (RepositoryException e) { if (autoCommit) { rollback(); } throw e; } catch (RuntimeException e) { if (autoCommit) { rollback(); } throw e; } finally { autoCommit(); } }
private TupleExpr visitHaving(Resource having) throws OpenRDFException { UnaryTupleOperator op = (UnaryTupleOperator)group.getParentNode(); op.setArg(new Extension(group)); Iteration<? extends Resource, QueryEvaluationException> iter = Statements.listResources(having, store); while (iter.hasNext()) { Resource r = iter.next(); ValueExpr havingExpr = visitExpression(r); Filter filter = new Filter(op.getArg(), havingExpr); op.setArg(filter); op = filter; } return op; }