@@ -0,0 +1,2308 @@
+/*%0A * Java Genetic Algorithm Library (@__identifier__@).%0A * Copyright (c) @__year__@ Franz Wilhelmst%C3%B6tter%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *      http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A *%0A * Author:%0A *    Franz Wilhelmst%C3%B6tter (franz.wilhelmstoetter@gmx.at)%0A */%0Apackage org.jenetics.internal.engine;%0A%0Aimport static java.util.Objects.requireNonNull;%0A%0Aimport java.util.Spliterator;%0Aimport java.util.function.Consumer;%0Aimport java.util.function.Function;%0A%0Aimport org.jenetics.Gene;%0A%0A/**%0A * @author %3Ca href=%22mailto:franz.wilhelmstoetter@gmx.at%22%3EFranz Wilhelmst%C3%B6tter%3C/a%3E%0A * @since 3.0%0A * @version 3.0 &mdash; %3Cem%3E$Date: 2014-09-07 $%3C/em%3E%0A */%0Afinal class EvolutionSpliterator%3C%0A%09G extends Gene%3C?, G%3E,%0A%09C extends Comparable%3C? super C%3E%0A%3E%0A%09implements Spliterator%3CEvolutionResult%3CG, C%3E%3E%0A%7B%0A%0A%09private final Function%3CEvolutionStart%3CG, C%3E, EvolutionResult%3CG, C%3E%3E _evolution;%0A%09private final int _generations;%0A%0A%09private EvolutionStart%3CG, C%3E _start;%0A%09private int _generation = 0;%0A%0A%09EvolutionSpliterator(%0A%09%09final Function%3CEvolutionStart%3CG, C%3E, EvolutionResult%3CG, C%3E%3E evolution,%0A%09%09final EvolutionStart%3CG, C%3E start,%0A%09%09final int generations%0A%09) %7B%0A%09%09_evolution = requireNonNull(evolution);%0A%09%09_start = requireNonNull(start);%0A%09%09_generations = generations;%0A%09%7D%0A%0A%09@Override%0A%09public boolean tryAdvance(%0A%09%09final Consumer%3C? super EvolutionResult%3CG, C%3E%3E action%0A%09) %7B%0A%09%09if (_generation %3C _generations) %7B%0A%09%09%09final EvolutionResult%3CG, C%3E result = _evolution.apply(_start);%0A%09%09%09action.accept(result);%0A%0A%09%09%09_start = result.next();%0A%09%09%09++_generation;%0A%09%09%7D%0A%0A%09%09return _generation %3C _generations;%0A%09%7D%0A%0A%09@Override%0A%09public Spliterator%3CEvolutionResult%3CG, C%3E%3E trySplit() %7B%0A%09%09return null;%0A%09%7D%0A%0A%09@Override%0A%09public long estimateSize() %7B%0A%09%09return _generations;%0A%09%7D%0A%0A%09@Override%0A%09public int characteristics() %7B%0A%09%09return Spliterator.SIZED %7C Spliterator.NONNULL %7C Spliterator.IMMUTABLE;%0A%09%7D%0A%7D%0A

Add 'EvolutionSpliterator' class. Used for evolution stream.