@Override public String getSignature() { StringBuilder sb = new StringBuilder(256); sb.append(super.getSignature()); sb.append(" ( "); if (hasLimit()) { sb.append("limit=").append(getLimit()); } if (hasOffset()) { sb.append("offset=").append(getOffset()); } sb.append(" )"); return sb.toString(); }
@Override public void meet(Slice node) throws RuntimeException { if(node.hasLimit()) limit = node.getLimit(); if(node.hasOffset()) offset = node.getOffset(); }
/** * @inheritDoc */ @Override public void meet(final Slice theSlice) throws Exception { if (theSlice.hasOffset()) { mOffset = theSlice.getOffset(); } if (theSlice.hasLimit()) { mLimit = theSlice.getLimit(); } theSlice.visitChildren(this); }
/** * Returns the limit of the current variable bindings before any further * projection. */ protected long getLimit(QueryModelNode node) { long offset = 0; if (node instanceof Slice) { Slice slice = (Slice)node; if (slice.hasOffset() && slice.hasLimit()) { return slice.getOffset() + slice.getLimit(); } else if (slice.hasLimit()) { return slice.getLimit(); } else if (slice.hasOffset()) { offset = slice.getOffset(); } } QueryModelNode parent = node.getParentNode(); if (parent instanceof Distinct || parent instanceof Reduced || parent instanceof Slice) { long limit = getLimit(parent); if (offset > 0L && limit < Long.MAX_VALUE) { return offset + limit; } else { return limit; } } return Long.MAX_VALUE; }
public CloseableIteration<BindingSet, QueryEvaluationException> evaluate(Slice slice, BindingSet bindings) throws QueryEvaluationException { CloseableIteration<BindingSet, QueryEvaluationException> result = evaluate(slice.getArg(), bindings); if (slice.hasOffset()) { result = new OffsetIteration<BindingSet, QueryEvaluationException>(result, slice.getOffset()); } if (slice.hasLimit()) { result = new LimitIteration<BindingSet, QueryEvaluationException>(result, slice.getLimit()); } return result; }
@Override public void meet(Slice node) throws RDFHandlerException { node.getArg().visit(this); if (node.hasLimit()) { handler.handleStatement(valueFactory.createStatement(subject, SP.LIMIT_PROPERTY, valueFactory.createLiteral(Long.toString(node.getLimit()), XMLSchema.INTEGER))); } if (node.hasOffset()) { handler.handleStatement(valueFactory.createStatement(subject, SP.OFFSET_PROPERTY, valueFactory.createLiteral(Long.toString(node.getOffset()), XMLSchema.INTEGER))); } }
public CloseableIteration evaluate(Slice slice, BindingSet bindings) throws QueryEvaluationException { CloseableIteration result = evaluate(slice.getArg(), bindings); if (slice.hasOffset()) { result = new OffsetIteration(result, slice.getOffset()); } if (slice.hasLimit()) { result = new LimitIteration(result, slice.getLimit()); } return result; }
} else if (root instanceof Slice) { Slice s = (Slice) root; if (s.hasLimit()) { sequenceModifier.setLimit(s.getLimit());