├── docs ├── assets │ ├── .nojekyll │ ├── favicon.ico │ ├── apple-touch-icon.png │ ├── apple-touch-icon-114x114.png │ ├── apple-touch-icon-144x144.png │ ├── apple-touch-icon-57x57.png │ ├── apple-touch-icon-72x72.png │ ├── img │ │ ├── glyphicons-halflings.png │ │ └── glyphicons-halflings-white.png │ ├── css │ │ ├── prettify.css │ │ └── base.css │ └── js │ │ └── html5shiv.js ├── jbake.properties ├── templates │ ├── post.ftl │ ├── page.ftl │ ├── index.ftl │ ├── tags.ftl │ ├── sitemap.ftl │ ├── archive.ftl │ ├── feed.ftl │ ├── footer.ftl │ ├── header.ftl │ └── menu.ftl └── content │ └── map.adoc ├── src ├── test │ ├── resources │ │ ├── test.jar │ │ └── test.zip │ ├── groovy │ │ ├── JavadocPreTagTestSuite.groovy │ │ ├── groovy │ │ │ └── stream │ │ │ │ ├── ObjectTests.groovy │ │ │ │ ├── ReadmeTests.groovy │ │ │ │ ├── ConcatenationTests.groovy │ │ │ │ ├── iterators │ │ │ │ ├── EnumerationIteratorTests.groovy │ │ │ │ ├── RepeatingClosureIteratorTests.groovy │ │ │ │ ├── RepeatingObjectIteratorTests.groovy │ │ │ │ ├── LimitedIteratorTests.groovy │ │ │ │ ├── SkipIteratorTests.groovy │ │ │ │ ├── groovy │ │ │ │ │ ├── FilteringIteratorTests.groovy │ │ │ │ │ ├── FlatMapIteratorTests.groovy │ │ │ │ │ ├── TransformingIteratorTests.groovy │ │ │ │ │ ├── TapIteratorTests.groovy │ │ │ │ │ ├── ZipIteratorTests.groovy │ │ │ │ │ └── UntilIteratorTests.groovy │ │ │ │ ├── ConcatenationIteratorTests.groovy │ │ │ │ ├── MapIteratorTests.groovy │ │ │ │ ├── RepeatingIteratorTests.groovy │ │ │ │ ├── BufferedReaderIteratorTest.groovy │ │ │ │ └── CollatingIteratorTests.groovy │ │ │ │ ├── SkipTests.groovy │ │ │ │ ├── DelegateTests.groovy │ │ │ │ ├── ListTests.groovy │ │ │ │ ├── TapTests.groovy │ │ │ │ ├── ZipTests.groovy │ │ │ │ ├── CollateTests.groovy │ │ │ │ ├── ChainTests.groovy │ │ │ │ ├── StreamTests.groovy │ │ │ │ ├── StaticTests.groovy │ │ │ │ ├── FileTests.groovy │ │ │ │ ├── ReaderTests.groovy │ │ │ │ ├── MapTests.groovy │ │ │ │ ├── IteratorTests.groovy │ │ │ │ ├── WithIndexTests.groovy │ │ │ │ ├── RangeStreamTests.groovy │ │ │ │ ├── ExtensionTests.groovy │ │ │ │ ├── DocumentedTests.groovy │ │ │ │ └── NewStreamTests.groovy │ │ └── asciidoc │ │ │ ├── BriefExamples.groovy │ │ │ └── MapExamples.groovy │ └── java │ │ └── groovy │ │ └── stream │ │ └── iterators │ │ └── java │ │ ├── UntilIteratorForPredicateUnitTests.java │ │ ├── FilteringIteratorForPredicateUnitTests.java │ │ ├── UntilIteratorForIndexedPredicateUnitTests.java │ │ ├── TransformingIteratorForFunctionUnitTests.java │ │ ├── FlatMapIteratorForFunctionUnitTests.java │ │ ├── FilteringIteratorForIndexedPredicateUnitTests.java │ │ ├── TransformingIteratorForIndexedFunctionUnitTests.java │ │ ├── ZipIteratorForFunctionUnitTests.java │ │ ├── FlatMapIteratorForIndexedFunctionUnitTests.java │ │ ├── ZipIteratorForIndexedFunctionUnitTests.java │ │ ├── TapIteratorForFunctionUnitTest.java │ │ └── TapIteratorForIndexedFunctionUnitTest.java └── main │ └── java │ └── groovy │ └── stream │ ├── iterators │ ├── EmptyIterator.java │ ├── RepeatingObjectIterator.java │ ├── EnumerationIterator.java │ ├── RepeatingClosureIterator.java │ ├── java │ │ ├── ZipIteratorForFunction.java │ │ ├── ZipIteratorForIndexedFunction.java │ │ ├── UntilIteratorForPredicate.java │ │ ├── FilteringIteratorForPredicate.java │ │ ├── TransformingIteratorForFunction.java │ │ ├── UntilIteratorForIndexedPredicate.java │ │ ├── FilteringIteratorForIndexedPredicate.java │ │ ├── TransformingIteratorForIndexedFunction.java │ │ ├── FlatMapIteratorForFunction.java │ │ ├── TapIteratorForFunction.java │ │ ├── FlatMapIteratorForIndexedFunction.java │ │ └── TapIteratorForIndexedFunction.java │ ├── LimitedIterator.java │ ├── ConcatenationIterator.java │ ├── SkipIterator.java │ ├── AbstractIterator.java │ ├── groovy │ │ ├── TransformingIterator.java │ │ ├── FilteringIterator.java │ │ ├── UntilIterator.java │ │ ├── ZipIterator.java │ │ ├── TapIterator.java │ │ └── FlatMapIterator.java │ ├── BufferedReaderIterator.java │ ├── RepeatingIterator.java │ ├── MapIterator.java │ └── CollatingIterator.java │ ├── functions │ ├── Predicate.java │ ├── Function.java │ ├── IndexedPredicate.java │ ├── IndexedFunction.java │ ├── Function2.java │ └── IndexedFunction2.java │ └── StreamExtension.java ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── .travis.yml ├── LICENSE.txt ├── README.md ├── gradlew.bat └── gradlew /docs/assets/.nojekyll: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timyates/groovy-stream/HEAD/docs/assets/favicon.ico -------------------------------------------------------------------------------- /src/test/resources/test.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timyates/groovy-stream/HEAD/src/test/resources/test.jar -------------------------------------------------------------------------------- /src/test/resources/test.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timyates/groovy-stream/HEAD/src/test/resources/test.zip -------------------------------------------------------------------------------- /docs/assets/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timyates/groovy-stream/HEAD/docs/assets/apple-touch-icon.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timyates/groovy-stream/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /docs/assets/apple-touch-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timyates/groovy-stream/HEAD/docs/assets/apple-touch-icon-114x114.png -------------------------------------------------------------------------------- /docs/assets/apple-touch-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timyates/groovy-stream/HEAD/docs/assets/apple-touch-icon-144x144.png -------------------------------------------------------------------------------- /docs/assets/apple-touch-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timyates/groovy-stream/HEAD/docs/assets/apple-touch-icon-57x57.png -------------------------------------------------------------------------------- /docs/assets/apple-touch-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timyates/groovy-stream/HEAD/docs/assets/apple-touch-icon-72x72.png -------------------------------------------------------------------------------- /docs/assets/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timyates/groovy-stream/HEAD/docs/assets/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /docs/jbake.properties: -------------------------------------------------------------------------------- 1 | site.host=http://jbake.org 2 | render.tags=false 3 | index.file=posts.html 4 | render.feed=false 5 | render.archive=false 6 | -------------------------------------------------------------------------------- /docs/assets/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timyates/groovy-stream/HEAD/docs/assets/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | build 3 | gradle.properties 4 | src/main/groovy/META-INF 5 | .idea 6 | *.iml 7 | *.iws 8 | *.ipr 9 | out 10 | .nb-gradle 11 | docs/output 12 | docs/assets/javadoc 13 | docs/assets/coverage 14 | .classpath 15 | .project 16 | .settings/ 17 | .vscode/ 18 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Dec 04 22:06:23 GMT 2014 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-bin.zip 7 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: groovy 2 | jdk: 3 | - oraclejdk7 4 | install: true 5 | env: 6 | - TERM=dumb 7 | script: 8 | - ./gradlew check 9 | after_success: 10 | - ./gradlew cobertura coveralls 11 | after_failure: find build/reports/tests -name "*.html" -exec grep -A 10 "Condition not satisfied" {} \; 12 | -------------------------------------------------------------------------------- /docs/templates/post.ftl: -------------------------------------------------------------------------------- 1 | <#include "header.ftl"> 2 | 3 | <#include "menu.ftl"> 4 | 5 | 8 | 9 |

${content.date?string("dd MMMM yyyy")}

10 | 11 |

${content.body}

12 | 13 |
14 | 15 | <#include "footer.ftl"> -------------------------------------------------------------------------------- /docs/templates/page.ftl: -------------------------------------------------------------------------------- 1 | <#include "header.ftl"> 2 | 3 | <#include "menu.ftl"> 4 | 5 | 8 | 11 |

${content.body}

12 | 13 |
14 | 15 | <#include "footer.ftl"> -------------------------------------------------------------------------------- /src/test/groovy/JavadocPreTagTestSuite.groovy: -------------------------------------------------------------------------------- 1 | import groovy.util.JavadocAssertionTestSuite 2 | import junit.framework.Test 3 | import junit.framework.TestCase 4 | import junit.framework.TestSuite 5 | 6 | class JavadocPreTagTestSuite extends TestCase { 7 | static Test suite() { 8 | new TestSuite().with { suite -> 9 | suite.addTest( JavadocAssertionTestSuite.suite( 'src/main' ) ) 10 | suite 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /docs/templates/index.ftl: -------------------------------------------------------------------------------- 1 | <#include "header.ftl"> 2 | 3 | <#include "menu.ftl"> 4 | 5 | 8 | <#list posts as post> 9 | <#if (post.status == "published")> 10 |

<#escape x as x?xml>${post.title}

11 |

${post.date?string("dd MMMM yyyy")}

12 |

${post.body}

13 | 14 | 15 | 16 |
17 | 18 |

Older posts are available in the archive.

19 | 20 | <#include "footer.ftl"> -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | Licensed under the Apache License, Version 2.0 (the "License"); 2 | you may not use this file except in compliance with the License. 3 | You may obtain a copy of the License at 4 | 5 | http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software 8 | distributed under the License is distributed on an "AS IS" BASIS, 9 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 | 11 | See the License for the specific language governing permissions and 12 | limitations under the License. -------------------------------------------------------------------------------- /docs/assets/css/prettify.css: -------------------------------------------------------------------------------- 1 | .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} 2 | -------------------------------------------------------------------------------- /src/main/java/groovy/stream/iterators/EmptyIterator.java: -------------------------------------------------------------------------------- 1 | package groovy.stream.iterators; 2 | 3 | import java.util.Iterator; 4 | import java.util.NoSuchElementException; 5 | 6 | public class EmptyIterator implements Iterator { 7 | @Override 8 | public boolean hasNext() { 9 | return false; 10 | } 11 | 12 | @Override 13 | public T next() { 14 | throw new NoSuchElementException( "EmptyIterator contains no elements" ) ; 15 | } 16 | 17 | @Override 18 | public void remove() { 19 | throw new UnsupportedOperationException( "Remove not supported on EmptyIterator" ) ; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /docs/templates/tags.ftl: -------------------------------------------------------------------------------- 1 | <#include "header.ftl"> 2 | 3 | <#include "menu.ftl"> 4 | 5 | 8 | 9 | 10 | <#list tag_posts as post> 11 | <#if (last_month)??> 12 | <#if post.date?string("MMMM yyyy") != last_month> 13 | 14 |

${post.date?string("MMMM yyyy")}

15 | 14 |

${post.date?string("MMMM yyyy")}

15 |