1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.shared.trace;
20
21 import java.util.Iterator;
22 import java.util.logging.Level;
23 import java.util.logging.Logger;
24
25
26
27
28
29
30
31 public class TracingIterator<E> implements Iterator<E>
32 {
33 private final Iterator<E> _iterator;
34
35 private final TracingSupport _tracer;
36
37 public TracingIterator(Iterator<E> iterator)
38 {
39 _iterator = iterator;
40 _tracer = new TracingSupport(iterator.getClass());
41 }
42
43 public static <E> TracingIterator<E> create(Iterator<E> iterator)
44 {
45 return new TracingIterator<E>(iterator);
46 }
47
48
49
50
51 public Iterator<E> getIterator()
52 {
53 return _iterator;
54 }
55
56 public boolean hasNext()
57 {
58 return _tracer.trace("hasNext", new Closure<Boolean>()
59 {
60 public Boolean call()
61 {
62 return _iterator.hasNext();
63 }
64 });
65 }
66
67 public E next()
68 {
69 return _tracer.trace("next", new Closure<E>()
70 {
71 public E call()
72 {
73 return _iterator.next();
74 }
75 });
76 }
77
78 public void remove()
79 {
80 _tracer.trace("remove", new Closure<Object>()
81 {
82 public Object call()
83 {
84 _iterator.remove();
85 return Void.class;
86 }
87 });
88 }
89
90
91
92
93
94 public Level getLevel()
95 {
96 return _tracer.getLevel();
97 }
98
99
100
101
102
103 public Logger getLogger()
104 {
105 return _tracer.getLogger();
106 }
107
108
109
110
111
112 public String getSourceClass()
113 {
114 return _tracer.getSourceClass();
115 }
116
117
118
119
120
121 public void setLevel(Level level)
122 {
123 _tracer.setLevel(level);
124 }
125
126
127
128
129
130 public void setLogger(Logger logger)
131 {
132 _tracer.setLogger(logger);
133 }
134
135
136
137
138
139 public void setSourceClass(String className)
140 {
141 _tracer.setSourceClass(className);
142 }
143 }