/** * Create a sequence of nodes that skips a specified number of nodes before returning any nodes and that limits the number of * nodes returned. * * @param sequence the original sequence that is to be limited; may be null * @param limitAndOffset the specification of the offset and limit; if null this method simply returns <code>sequence</code> * @return the limitd sequence of nodes; never null */ public static NodeSequence limit( NodeSequence sequence, Limit limitAndOffset ) { if (sequence == null) return emptySequence(0); if (limitAndOffset != null && !limitAndOffset.isUnlimited()) { final int limit = limitAndOffset.getRowLimit(); // Perform the skip first ... if (limitAndOffset.isOffset()) { sequence = skip(sequence, limitAndOffset.getOffset()); } // And then the offset ... if (limit != Integer.MAX_VALUE) { sequence = limit(sequence, limit); } } return sequence; }
public SetQuery setQuery( org.modeshape.jcr.api.query.qom.QueryCommand left, SetQuery.Operation operation, org.modeshape.jcr.api.query.qom.QueryCommand right, javax.jcr.query.qom.Ordering[] orderings, org.modeshape.jcr.api.query.qom.Limit limit, boolean all ) { QueryCommand jcrLeft = CheckArg.getInstanceOf(left, QueryCommand.class, "left"); QueryCommand jcrRight = CheckArg.getInstanceOf(left, QueryCommand.class, "left"); List<Ordering> jcrOrderings = new ArrayList<Ordering>(); for (int i = 0; i != orderings.length; ++i) { jcrOrderings.add(CheckArg.getInstanceOf(orderings[i], Ordering.class, "orderings[" + i + "]")); } Limit jcrLimit = limit == null ? Limit.NONE : new Limit(limit.getRowLimit(), limit.getOffset()); return new SetQuery(jcrLeft, operation, jcrRight, all, jcrOrderings, jcrLimit); }
public SetQuery setQuery( org.modeshape.jcr.api.query.qom.QueryCommand left, SetQuery.Operation operation, org.modeshape.jcr.api.query.qom.QueryCommand right, javax.jcr.query.qom.Ordering[] orderings, org.modeshape.jcr.api.query.qom.Limit limit, boolean all ) { QueryCommand jcrLeft = CheckArg.getInstanceOf(left, QueryCommand.class, "left"); QueryCommand jcrRight = CheckArg.getInstanceOf(left, QueryCommand.class, "left"); List<Ordering> jcrOrderings = new ArrayList<Ordering>(); for (int i = 0; i != orderings.length; ++i) { jcrOrderings.add(CheckArg.getInstanceOf(orderings[i], Ordering.class, "orderings[" + i + "]")); } Limit jcrLimit = limit == null ? Limit.NONE : new Limit(limit.getRowLimit(), limit.getOffset()); return new SetQuery(jcrLeft, operation, jcrRight, all, jcrOrderings, jcrLimit); }
/** * Create a sequence of nodes that skips a specified number of nodes before returning any nodes and that limits the number of * nodes returned. * * @param sequence the original sequence that is to be limited; may be null * @param limitAndOffset the specification of the offset and limit; if null this method simply returns <code>sequence</code> * @return the limitd sequence of nodes; never null */ public static NodeSequence limit( NodeSequence sequence, Limit limitAndOffset ) { if (sequence == null) return emptySequence(0); if (limitAndOffset != null && !limitAndOffset.isUnlimited()) { final int limit = limitAndOffset.getRowLimit(); // Perform the skip first ... if (limitAndOffset.isOffset()) { sequence = skip(sequence, limitAndOffset.getOffset()); } // And then the offset ... if (limit != Integer.MAX_VALUE) { sequence = limit(sequence, limit); } } return sequence; }
@Override public SelectQuery select( javax.jcr.query.qom.Source source, javax.jcr.query.qom.Constraint constraint, javax.jcr.query.qom.Ordering[] orderings, javax.jcr.query.qom.Column[] columns, org.modeshape.jcr.api.query.qom.Limit limit, boolean distinct ) { Source jcrSource = CheckArg.getInstanceOf(source, Source.class, "source"); Constraint jcrConstraint = null; if (constraint != null) { jcrConstraint = CheckArg.getInstanceOf(constraint, Constraint.class, "constraint"); } List<Column> jcrColumns = null; if (columns != null) { jcrColumns = new ArrayList<Column>(); for (int i = 0; i != columns.length; ++i) { jcrColumns.add(CheckArg.getInstanceOf(columns[i], Column.class, "column[" + i + "]")); } } List<Ordering> jcrOrderings = null; if (orderings != null) { jcrOrderings = new ArrayList<Ordering>(); for (int i = 0; i != orderings.length; ++i) { jcrOrderings.add(CheckArg.getInstanceOf(orderings[i], Ordering.class, "orderings[" + i + "]")); } } Limit jcrLimit = limit == null ? Limit.NONE : new Limit(limit.getRowLimit(), limit.getOffset()); return new SelectQuery(jcrSource, jcrConstraint, jcrOrderings, jcrColumns, jcrLimit, distinct); }
@Override public SelectQuery select( javax.jcr.query.qom.Source source, javax.jcr.query.qom.Constraint constraint, javax.jcr.query.qom.Ordering[] orderings, javax.jcr.query.qom.Column[] columns, org.modeshape.jcr.api.query.qom.Limit limit, boolean distinct ) { Source jcrSource = CheckArg.getInstanceOf(source, Source.class, "source"); Constraint jcrConstraint = null; if (constraint != null) { jcrConstraint = CheckArg.getInstanceOf(constraint, Constraint.class, "constraint"); } List<Column> jcrColumns = null; if (columns != null) { jcrColumns = new ArrayList<Column>(); for (int i = 0; i != columns.length; ++i) { jcrColumns.add(CheckArg.getInstanceOf(columns[i], Column.class, "column[" + i + "]")); } } List<Ordering> jcrOrderings = null; if (orderings != null) { jcrOrderings = new ArrayList<Ordering>(); for (int i = 0; i != orderings.length; ++i) { jcrOrderings.add(CheckArg.getInstanceOf(orderings[i], Ordering.class, "orderings[" + i + "]")); } } Limit jcrLimit = limit == null ? Limit.NONE : new Limit(limit.getRowLimit(), limit.getOffset()); return new SelectQuery(jcrSource, jcrConstraint, jcrOrderings, jcrColumns, jcrLimit, distinct); }