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 public class TracingIterator<E> implements Iterator<E>
29 {
30 private final Iterator<E> _iterator;
31
32 private final TracingSupport _tracer;
33
34 public TracingIterator(Iterator<E> iterator)
35 {
36 _iterator = iterator;
37 _tracer = new TracingSupport(iterator.getClass());
38 }
39
40 public static <E> TracingIterator<E> create(Iterator<E> iterator)
41 {
42 return new TracingIterator<E>(iterator);
43 }
44
45
46
47
48 public Iterator<E> getIterator()
49 {
50 return _iterator;
51 }
52
53 public boolean hasNext()
54 {
55 return _tracer.trace("hasNext", new Closure<Boolean>()
56 {
57 public Boolean call()
58 {
59 return _iterator.hasNext();
60 }
61 });
62 }
63
64 public E next()
65 {
66 return _tracer.trace("next", new Closure<E>()
67 {
68 public E call()
69 {
70 return _iterator.next();
71 }
72 });
73 }
74
75 public void remove()
76 {
77 _tracer.trace("remove", new Closure<Object>()
78 {
79 public Object call()
80 {
81 _iterator.remove();
82 return Void.class;
83 }
84 });
85 }
86
87
88
89
90
91 public Level getLevel()
92 {
93 return _tracer.getLevel();
94 }
95
96
97
98
99
100 public Logger getLogger()
101 {
102 return _tracer.getLogger();
103 }
104
105
106
107
108
109 public String getSourceClass()
110 {
111 return _tracer.getSourceClass();
112 }
113
114
115
116
117
118 public void setLevel(Level level)
119 {
120 _tracer.setLevel(level);
121 }
122
123
124
125
126
127 public void setLogger(Logger logger)
128 {
129 _tracer.setLogger(logger);
130 }
131
132
133
134
135
136 public void setSourceClass(String className)
137 {
138 _tracer.setSourceClass(className);
139 }
140 }