diff options
Diffstat (limited to 'model-data/src/main/java/org')
-rw-r--r-- | model-data/src/main/java/org/eclipse/viatra/solver/data/util/CollectionsUtil.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/model-data/src/main/java/org/eclipse/viatra/solver/data/util/CollectionsUtil.java b/model-data/src/main/java/org/eclipse/viatra/solver/data/util/CollectionsUtil.java new file mode 100644 index 00000000..d950228d --- /dev/null +++ b/model-data/src/main/java/org/eclipse/viatra/solver/data/util/CollectionsUtil.java | |||
@@ -0,0 +1,29 @@ | |||
1 | package org.eclipse.viatra.solver.data.util; | ||
2 | |||
3 | import java.util.Iterator; | ||
4 | import java.util.function.Function; | ||
5 | |||
6 | public final class CollectionsUtil { | ||
7 | private CollectionsUtil() { | ||
8 | throw new UnsupportedOperationException(); | ||
9 | } | ||
10 | |||
11 | static <S,T> Iterator<T> map(Iterator<S> source, Function<S, T> transformation) { | ||
12 | return new Iterator<T>() { | ||
13 | |||
14 | @Override | ||
15 | public boolean hasNext() { | ||
16 | return source.hasNext(); | ||
17 | } | ||
18 | |||
19 | @Override | ||
20 | public T next() { | ||
21 | return transformation.apply(source.next()); | ||
22 | } | ||
23 | }; | ||
24 | } | ||
25 | |||
26 | static <S,T> Iterable<T> map(Iterable<S> source, Function<S, T> transformation) { | ||
27 | return (()->map(source.iterator(),transformation)); | ||
28 | } | ||
29 | } | ||