src/share/classes/java/util/stream/ReferencePipeline.java

Print this page
rev 8376 : 8025910: rename substream(long) -> skip and remove substream(long,long)
Reviewed-by: duke


 377         };
 378     }
 379 
 380     // Stateful intermediate operations from Stream
 381 
 382     @Override
 383     public final Stream<P_OUT> distinct() {
 384         return DistinctOps.makeRef(this);
 385     }
 386 
 387     @Override
 388     public final Stream<P_OUT> sorted() {
 389         return SortedOps.makeRef(this);
 390     }
 391 
 392     @Override
 393     public final Stream<P_OUT> sorted(Comparator<? super P_OUT> comparator) {
 394         return SortedOps.makeRef(this, comparator);
 395     }
 396 
 397     private Stream<P_OUT> slice(long skip, long limit) {
 398         return SliceOps.makeRef(this, skip, limit);
 399     }
 400 
 401     @Override
 402     public final Stream<P_OUT> limit(long maxSize) {
 403         if (maxSize < 0)
 404             throw new IllegalArgumentException(Long.toString(maxSize));
 405         return slice(0, maxSize);
 406     }
 407 
 408     @Override
 409     public final Stream<P_OUT> substream(long startingOffset) {
 410         if (startingOffset < 0)
 411             throw new IllegalArgumentException(Long.toString(startingOffset));
 412         if (startingOffset == 0)
 413             return this;
 414         else
 415             return slice(startingOffset, -1);
 416     }
 417 
 418     @Override
 419     public final Stream<P_OUT> substream(long startingOffset, long endingOffset) {
 420         if (startingOffset < 0 || endingOffset < startingOffset)
 421             throw new IllegalArgumentException(String.format("substream(%d, %d)", startingOffset, endingOffset));
 422         return slice(startingOffset, endingOffset - startingOffset);
 423     }
 424 
 425     // Terminal operations from Stream
 426 
 427     @Override
 428     public void forEach(Consumer<? super P_OUT> action) {
 429         evaluate(ForEachOps.makeRef(action, false));
 430     }
 431 
 432     @Override
 433     public void forEachOrdered(Consumer<? super P_OUT> action) {
 434         evaluate(ForEachOps.makeRef(action, true));
 435     }
 436 
 437     @Override
 438     @SuppressWarnings("unchecked")
 439     public final <A> A[] toArray(IntFunction<A[]> generator) {
 440         // Since A has no relation to U (not possible to declare that A is an upper bound of U)
 441         // there will be no static type checking.
 442         // Therefore use a raw type and assume A == U rather than propagating the separation of A and U




 377         };
 378     }
 379 
 380     // Stateful intermediate operations from Stream
 381 
 382     @Override
 383     public final Stream<P_OUT> distinct() {
 384         return DistinctOps.makeRef(this);
 385     }
 386 
 387     @Override
 388     public final Stream<P_OUT> sorted() {
 389         return SortedOps.makeRef(this);
 390     }
 391 
 392     @Override
 393     public final Stream<P_OUT> sorted(Comparator<? super P_OUT> comparator) {
 394         return SortedOps.makeRef(this, comparator);
 395     }
 396 




 397     @Override
 398     public final Stream<P_OUT> limit(long maxSize) {
 399         if (maxSize < 0)
 400             throw new IllegalArgumentException(Long.toString(maxSize));
 401         return SliceOps.makeRef(this, 0, maxSize);
 402     }
 403 
 404     @Override
 405     public final Stream<P_OUT> skip(long n) {
 406         if (n < 0)
 407             throw new IllegalArgumentException(Long.toString(n));
 408         if (n == 0)
 409             return this;
 410         else
 411             return SliceOps.makeRef(this, n, -1);







 412     }
 413 
 414     // Terminal operations from Stream
 415 
 416     @Override
 417     public void forEach(Consumer<? super P_OUT> action) {
 418         evaluate(ForEachOps.makeRef(action, false));
 419     }
 420 
 421     @Override
 422     public void forEachOrdered(Consumer<? super P_OUT> action) {
 423         evaluate(ForEachOps.makeRef(action, true));
 424     }
 425 
 426     @Override
 427     @SuppressWarnings("unchecked")
 428     public final <A> A[] toArray(IntFunction<A[]> generator) {
 429         // Since A has no relation to U (not possible to declare that A is an upper bound of U)
 430         // there will be no static type checking.
 431         // Therefore use a raw type and assume A == U rather than propagating the separation of A and U