package org.eclipse.viatra.solver.data.map; import java.util.Iterator; import java.util.function.BiFunction; import java.util.function.BiPredicate; public class MapAsIterable implements Iterable { private final VersionedMap internal; private final BiFunction entryTransformation; private final BiPredicate filtering; public MapAsIterable(VersionedMap internal, BiFunction entryTransformation, BiPredicate filtering) { this.internal = internal; this.entryTransformation = entryTransformation; this.filtering = filtering; } public MapAsIterable(VersionedMap internal, BiFunction entryTransformation) { this.internal = internal; this.entryTransformation = entryTransformation; this.filtering = ((k,v)->true); } @Override public Iterator iterator() { return new CursorAsIterator<>(internal.getAll(), entryTransformation, filtering); } }