1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package jp.liq.container.reflect;
17
18 import java.lang.reflect.Field;
19 import java.util.Iterator;
20
21 import jp.liq.container.util.ArrayIterator;
22 import jp.liq.container.util.IteratorWrapper;
23
24
25
26
27
28
29 public class ObjectFieldFinder extends FieldFinder<ObjectField, ObjectFieldFinder>
30 implements Iterable<ObjectField> {
31 private final Object target;
32
33 public ObjectFieldFinder(Object target) {
34 this.target = target;
35
36 }
37
38
39
40
41 @Override
42 protected ObjectFieldFinder getThis() {
43 return this;
44 }
45
46 @Override
47 protected Iterator<ObjectField> getCandidates() {
48 return new ObjectFieldIterator(
49 new ArrayIterator<Field>(target.getClass().getFields()));
50 }
51
52 private class ObjectFieldIterator extends IteratorWrapper<ObjectField, Field> {
53 public ObjectFieldIterator(Iterator<Field> iterator) {
54 super(iterator);
55 }
56
57 public ObjectField next() {
58 return new ObjectField(iterator.next(), target);
59 }
60
61 }
62 }