Mercurial > hg > Members > kazuma > jungle-ormapper
comparison src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/util/IterableConverter.java @ 0:44465893e8b8
first Commit
author | Kazuma |
---|---|
date | Wed, 30 Nov 2016 01:47:55 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:44465893e8b8 |
---|---|
1 package jp.ac.u_ryukyu.ie.cr.jungle.util; | |
2 | |
3 import java.util.Iterator; | |
4 | |
5 public class IterableConverter<A,B> implements Iterable<A> | |
6 { | |
7 private final Iterable<B> iterable; | |
8 private final Converter<A,B> converter; | |
9 | |
10 public IterableConverter(Iterable<B> _iterable,Converter<A,B> _converter) | |
11 { | |
12 iterable = _iterable; | |
13 converter = _converter; | |
14 } | |
15 | |
16 @Override | |
17 public Iterator<A> iterator() | |
18 { | |
19 return new IteratorConverter<A,B>(iterable.iterator(),converter); | |
20 } | |
21 | |
22 private static final class IteratorConverter<A,B> implements Iterator<A> | |
23 { | |
24 private final Iterator<B> iterator; | |
25 private final Converter<A,B> converter; | |
26 | |
27 public IteratorConverter(Iterator<B> _iterator,Converter<A,B> _converter) | |
28 { | |
29 iterator = _iterator; | |
30 converter = _converter; | |
31 } | |
32 | |
33 @Override | |
34 public boolean hasNext() | |
35 { | |
36 return iterator.hasNext(); | |
37 } | |
38 | |
39 @Override | |
40 public A next() | |
41 { | |
42 return converter.conv(iterator.next()); | |
43 } | |
44 | |
45 @Override | |
46 public void remove() | |
47 { | |
48 iterator.remove(); | |
49 } | |
50 } | |
51 | |
52 public static interface Converter<A,B> | |
53 { | |
54 public A conv(B _b); | |
55 } | |
56 } |