
org.hcjf.utils.TtlSet Maven / Gradle / Ivy
package org.hcjf.utils;
import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
import java.util.Spliterator;
import java.util.function.Predicate;
import java.util.stream.Stream;
/**
* @author javaito
*/
public class TtlSet extends TtlCollection implements Set {
private final Set instance;
public TtlSet(Set instance, Long timeWindowsSize) {
super(timeWindowsSize);
this.instance = instance;
}
@Override
protected void removeOldInstance(V instanceKey) {
instance.remove(instanceKey);
}
@Override
public int size() {
removeOldWindows();
return instance.size();
}
@Override
public boolean isEmpty() {
removeOldWindows();
return instance.isEmpty();
}
@Override
public boolean contains(Object o) {
removeOldWindows();
return instance.contains(o);
}
@Override
public Iterator iterator() {
removeOldWindows();
return instance.iterator();
}
@Override
public Object[] toArray() {
removeOldWindows();
return instance.toArray();
}
@Override
public T[] toArray(T[] a) {
removeOldWindows();
return instance.toArray(a);
}
@Override
public boolean add(V v) {
removeOldWindows();
addInstance(v);
return instance.add(v);
}
@Override
public boolean remove(Object o) {
removeOldWindows();
return instance.remove(o);
}
@Override
public boolean containsAll(Collection> c) {
removeOldWindows();
return instance.containsAll(c);
}
@Override
public boolean addAll(Collection extends V> c) {
c.forEach(this::add);
return true;
}
@Override
public boolean retainAll(Collection> c) {
throw new UnsupportedOperationException();
}
@Override
public boolean removeAll(Collection> c) {
c.forEach(this::remove);
return true;
}
@Override
public void clear() {
instance.clear();
}
@Override
public boolean equals(Object o) {
return instance.equals(o);
}
@Override
public int hashCode() {
return instance.hashCode();
}
@Override
public Spliterator spliterator() {
removeOldWindows();
return instance.spliterator();
}
@Override
public boolean removeIf(Predicate super V> filter) {
removeOldWindows();
return instance.removeIf(filter);
}
@Override
public Stream stream() {
removeOldWindows();
return instance.stream();
}
@Override
public Stream parallelStream() {
removeOldWindows();
return instance.parallelStream();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy