
com.thesett.common.util.SequenceIterator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of common Show documentation
Show all versions of common Show documentation
My common library, a mixed bag of re-usable utility code.
The newest version!
/*
* Copyright The Sett Ltd, 2005 to 2014.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.thesett.common.util;
import java.util.Iterator;
import java.util.NoSuchElementException;
/**
* SequenceIterator is a helper class for writing iterators over lazily generated sequences. This follows a common
* pattern, different from an iterator over a collection of a known size. This is because the next element in the
* sequence must be generated before knowing whether or not there is next element. The pattern that this base class
* follows is to generate and cache the next element when the {@link #hasNext()} method is called, and to consume and
* return the cached element when the {@link #next()} method is called. The {@link #next()} method will generate the
* next element in the sequence, if it has not already been created and cached.
*
*
CRC Card
* Responsibilities Collaborations
* Turn a lazily generated sequence into an iterator.
*
*
* @author Rupert Smith
*/
public abstract class SequenceIterator© 2015 - 2025 Weber Informatics LLC | Privacy Policy