All Downloads are FREE. Search and download functionalities are using the official Maven repository.

inet.ipaddr.format.AddressSeriesSpliterator Maven / Gradle / Ivy

There is a newer version: 5.5.1
Show newest version
package inet.ipaddr.format;

import java.math.BigInteger;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.ToLongFunction;

import inet.ipaddr.AddressComponent;
import inet.ipaddr.format.AddressDivisionGroupingBase.AddressItemRangeSpliterator;
import inet.ipaddr.format.AddressDivisionGroupingBase.IteratorProvider;
import inet.ipaddr.format.AddressDivisionGroupingBase.SplitterSink;
import inet.ipaddr.format.util.AddressComponentSpliterator;

/**
 * AddressSeriesSpliterator provides a Spliterator implementation for address components,
 * in which the items providing the iteration are the same type as the items that are the result of the iteration.
 * 
 * @author seancfoley
 *
 * @param 
 */
class AddressSeriesSpliterator
	extends AddressItemRangeSpliterator implements AddressComponentSpliterator {
	
	AddressSeriesSpliterator(
			T forIteration,
			Predicate> splitter,
			IteratorProvider iteratorProvider,
			Function sizer /* can be null */,
			Predicate downSizer,
			ToLongFunction longSizer /* not to be used if sizer not null */) {
		super(forIteration, splitter, iteratorProvider, sizer, downSizer, longSizer);
	}
	
	AddressSeriesSpliterator(
			T forIteration,
			Predicate> splitter,
			IteratorProvider iteratorProvider,
			boolean isLowest,
			Function sizer /* can be null */,
			Predicate downSizer,
			ToLongFunction longSizer /* not to be used if sizer not null */) {
		super(forIteration, splitter, iteratorProvider, isLowest, false, sizer, downSizer, longSizer);
	}
	
	@Override
	protected AddressSeriesSpliterator createSpliterator(
			T split, 
			boolean isLowest,
			Function sizer,
			Predicate downSizer,
			ToLongFunction longSizer) {
		return new AddressSeriesSpliterator(split, splitter, iteratorProvider, isLowest, sizer, downSizer, longSizer);
	}

	@Override
	public AddressSeriesSpliterator trySplit() {
		return (AddressSeriesSpliterator) super.trySplit();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy