org.infinispan.commons.util.ImmutableIntSet Maven / Gradle / Ivy
package org.infinispan.commons.util;
import java.util.Collection;
import java.util.PrimitiveIterator;
import java.util.Spliterator;
import java.util.function.Consumer;
import java.util.function.IntConsumer;
import java.util.stream.IntStream;
/**
* Immutable wrapper for {@link IntSet}.
*
* @author Dan Berindei
* @since 9.2
*/
class ImmutableIntSet extends AbstractImmutableIntSet {
private final IntSet set;
ImmutableIntSet(IntSet set) {
this.set = set;
}
@Override
public boolean contains(int i) {
return set.contains(i);
}
@Override
public boolean containsAll(IntSet set) {
return this.set.containsAll(set);
}
@Override
public int size() {
return set.size();
}
@Override
public boolean isEmpty() {
return set.isEmpty();
}
@Override
public boolean contains(Object o) {
return set.contains(o);
}
@Override
public PrimitiveIterator.OfInt iterator() {
return new ImmutableIterator(set.iterator());
}
@Override
public int[] toIntArray() {
return set.toIntArray();
}
@Override
public Object[] toArray() {
return set.toArray();
}
@Override
public T[] toArray(T[] a) {
return set.toArray(a);
}
@Override
public boolean containsAll(Collection> c) {
return set.containsAll(c);
}
@Override
public IntStream intStream() {
return set.intStream();
}
@Override
public void forEach(IntConsumer action) {
set.forEach(action);
}
@Override
public void forEach(Consumer super Integer> action) {
set.forEach(action);
}
@Override
public Spliterator.OfInt intSpliterator() {
return set.intSpliterator();
}
@Override
public byte[] toBitSet() {
return set.toBitSet();
}
@Override
public int nextSetBit(int fromIndex) {
return set.nextSetBit(fromIndex);
}
private static class ImmutableIterator implements PrimitiveIterator.OfInt {
private final OfInt iterator;
ImmutableIterator(OfInt iterator) {
this.iterator = iterator;
}
@Override
public int nextInt() {
return iterator.nextInt();
}
@Override
public boolean hasNext() {
return iterator.hasNext();
}
}
}