EMMA Coverage Report (generated Thu Aug 04 11:43:22 MEST 2005)
[all classes][org.jsesoft.ri]

COVERAGE SUMMARY FOR SOURCE FILE [InspectorSupport.java]

nameclass, %method, %block, %line, %
InspectorSupport.java100% (1/1)100% (45/45)100% (558/558)100% (200/200)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class InspectorSupport100% (1/1)100% (45/45)100% (558/558)100% (200/200)
InspectorSupport (): void 100% (1/1)100% (3/3)100% (1/1)
getStrategy (): InspectStrategy 100% (1/1)100% (3/3)100% (1/1)
inspect (Class): boolean 100% (1/1)100% (13/13)100% (4/4)
inspectAnnotation (Class, Annotation): boolean 100% (1/1)100% (14/14)100% (4/4)
inspectAnnotations (Class, Constructor): boolean 100% (1/1)100% (14/14)100% (4/4)
inspectAnnotations (Class, Field): boolean 100% (1/1)100% (14/14)100% (4/4)
inspectAnnotations (Class, Method): boolean 100% (1/1)100% (14/14)100% (4/4)
inspectConstructor (Class, Constructor): boolean 100% (1/1)100% (14/14)100% (4/4)
inspectConstructors (Class): boolean 100% (1/1)100% (13/13)100% (4/4)
inspectField (Class, Field): boolean 100% (1/1)100% (14/14)100% (4/4)
inspectFields (Class): boolean 100% (1/1)100% (13/13)100% (4/4)
inspectMethod (Class, Method): boolean 100% (1/1)100% (14/14)100% (4/4)
inspectMethods (Class): boolean 100% (1/1)100% (13/13)100% (4/4)
inspectParameterType (Class, Class): boolean 100% (1/1)100% (14/14)100% (4/4)
inspectParameterTypes (Class, Constructor): boolean 100% (1/1)100% (14/14)100% (4/4)
inspectParameterTypes (Class, Method): boolean 100% (1/1)100% (14/14)100% (4/4)
postInspect (Class): void 100% (1/1)100% (12/12)100% (5/5)
postInspectAnnotation (Class, Annotation): void 100% (1/1)100% (13/13)100% (5/5)
postInspectAnnotations (Class, Constructor): void 100% (1/1)100% (13/13)100% (5/5)
postInspectAnnotations (Class, Field): void 100% (1/1)100% (13/13)100% (5/5)
postInspectAnnotations (Class, Method): void 100% (1/1)100% (13/13)100% (5/5)
postInspectConstructor (Class, Constructor): void 100% (1/1)100% (13/13)100% (5/5)
postInspectConstructors (Class): void 100% (1/1)100% (12/12)100% (5/5)
postInspectField (Class, Field): void 100% (1/1)100% (13/13)100% (5/5)
postInspectFields (Class): void 100% (1/1)100% (12/12)100% (5/5)
postInspectMethod (Class, Method): void 100% (1/1)100% (13/13)100% (5/5)
postInspectMethods (Class): void 100% (1/1)100% (12/12)100% (5/5)
postInspectParameterType (Class, Class): void 100% (1/1)100% (13/13)100% (5/5)
postInspectParameterTypes (Class, Constructor): void 100% (1/1)100% (13/13)100% (5/5)
postInspectParameterTypes (Class, Method): void 100% (1/1)100% (13/13)100% (5/5)
preInspect (Class): void 100% (1/1)100% (12/12)100% (5/5)
preInspectAnnotation (Class, Annotation): void 100% (1/1)100% (13/13)100% (5/5)
preInspectAnnotations (Class, Constructor): void 100% (1/1)100% (13/13)100% (5/5)
preInspectAnnotations (Class, Field): void 100% (1/1)100% (13/13)100% (5/5)
preInspectAnnotations (Class, Method): void 100% (1/1)100% (13/13)100% (5/5)
preInspectConstructor (Class, Constructor): void 100% (1/1)100% (13/13)100% (5/5)
preInspectConstructors (Class): void 100% (1/1)100% (12/12)100% (5/5)
preInspectField (Class, Field): void 100% (1/1)100% (13/13)100% (5/5)
preInspectFields (Class): void 100% (1/1)100% (12/12)100% (5/5)
preInspectMethod (Class, Method): void 100% (1/1)100% (13/13)100% (5/5)
preInspectMethods (Class): void 100% (1/1)100% (12/12)100% (5/5)
preInspectParameterType (Class, Class): void 100% (1/1)100% (13/13)100% (5/5)
preInspectParameterTypes (Class, Constructor): void 100% (1/1)100% (13/13)100% (5/5)
preInspectParameterTypes (Class, Method): void 100% (1/1)100% (13/13)100% (5/5)
setStrategy (InspectStrategy): void 100% (1/1)100% (4/4)100% (2/2)

1/**
2 * Class <code>InspectorSupport</code>.
3 */
4package org.jsesoft.ri;
5 
6import java.lang.annotation.Annotation;
7import java.lang.reflect.Constructor;
8import java.lang.reflect.Field;
9import java.lang.reflect.Method;
10 
11/**
12 * Supports the implementation of inspectors and inspect strategies.
13 * <p>
14 * The <code>org.jsesoft.ri.InspectorSupport</code> provides
15 * a default implementation for all the methods
16 * the <code>ReflectionInspector</code> calls during traversal of the
17 * inspectee's reflection tree. This default
18 * implementation simply calls the respective function of the attached
19 * strategy. If no strategy is attached,
20 * the default implementation returns immediately returning
21 * <code>false</code> where a return value is required (meaning
22 * that default processing should take place).
23 
24 * <p>
25 * This class supports the implementation of inspector related classes
26 * in three ways:
27 * <ul>
28 * <li>
29 * As a superclass of <code>ReflectionInspector</code> it provides default
30 * implementations of all methods not overridden by
31 * <code>ReflectionInspector</code>. This default implementation calls
32 * the respective strategy function if a stragegy is attached. If no strategy is
33 * attached, it returns <code>false</code> indicating inspection is not yet
34 * complete. Subclasses of
35 * <code>ReflectionInspector</code> amy use this default in own overrides
36 * or need not even override.
37 * </li>
38 * <li>
39 * Strategies may subclass <code>InspectorSupport</code> as well, with the
40 * same benfits as subclasses of <code>ReflectionInspector</code>.
41 * </li>
42 * <li>
43 * Finally, <code>InspectorSupport</code> supports strategy chaining in
44 * calling the strategy attached to a strategy by default.
45 * </li>
46 * </ul>
47 * </p>
48 * <p>
49 * The test class <code>TestReflectionInspector</code>
50 * demonstrates both, attaching a strategy and subclassing.
51 * <code>
52 * <pre>
53 *   public void testReflectionInspectorWithStrategy()
54 *       throws Exception
55 *   {
56 *       inspector = new ReflectionInspector();
57 *       inspector.setInspectee( this.getClass() );
58 *       inspector.setStrategy( new InspectorSupport() );
59 *       inspector.inspect();
60 *       assertTrue( inspector.getState().booleanValue() );
61 *   }
62 *
63 *   public void testReflectionInspectorSubclassed()
64 *       throws Exception
65 *   {
66 *       inspector = new ReflectionInspector() {
67 *           public void preInspect()
68 *           throws Exception
69 *           {
70 *               assertNull( super.getState() );
71 *               super.preInspect();
72 *               assertFalse( super.getState().booleanValue() );
73 *           }
74 
75 *           public void postInspect()
76 *           throws Exception
77 *           {
78 *               assertFalse( super.getState() );
79 *               super.postInspect();
80 *               assertTrue( super.getState().booleanValue() );
81 *           }
82 *       };
83 *       inspector.setInspectee( this.getClass() );
84 *       inspector.inspect();
85 *       assertTrue( inspector.getState().booleanValue() );
86 *   }
87 * </pre>
88 * </code>
89 * </p>
90 * @author JSESoft
91 * @version 1.0
92 */
93public class InspectorSupport
94    implements InspectStrategy
95{
96    private InspectStrategy strategy;
97 
98    /**
99     * Attaches a strategy to the inspector.
100     *
101     * @param strategy InspectStrategy to attach
102     * @see #getStrategy
103     */
104    public void setStrategy( InspectStrategy strategy )
105    {
106        this.strategy = strategy;
107    }
108 
109    /**
110     * Retrieves the attached strategy.
111     *
112     * @return the InspectStrategy attached
113     * @see #setStrategy
114     */
115    public InspectStrategy getStrategy()
116    {
117        return strategy;
118    }
119 
120    public void preInspect( Class inspected )
121        throws Exception
122    {
123        InspectStrategy straqtegy = getStrategy();
124        if( strategy == null ) {
125            return;
126        }
127        strategy.preInspect( inspected );
128    }
129 
130    public void preInspectAnnotation( Class inspected, Annotation annotation )
131        throws Exception
132    {
133        InspectStrategy straqtegy = getStrategy();
134        if( strategy == null ) {
135            return;
136        }
137        strategy.preInspectAnnotation( inspected, annotation );
138    }
139 
140    public void preInspectAnnotations( Class inspected, Constructor constructor )
141        throws Exception
142    {
143        InspectStrategy straqtegy = getStrategy();
144        if( strategy == null ) {
145            return;
146        }
147        strategy.preInspectAnnotations( inspected, constructor );
148    }
149 
150    public void preInspectAnnotations( Class inspected, Field field )
151        throws Exception
152    {
153        InspectStrategy straqtegy = getStrategy();
154        if( strategy == null ) {
155            return;
156        }
157        strategy.preInspectAnnotations( inspected, field );
158    }
159 
160    public void preInspectAnnotations( Class inspected, Method method )
161        throws Exception
162    {
163        InspectStrategy straqtegy = getStrategy();
164        if( strategy == null ) {
165            return;
166        }
167        strategy.preInspectAnnotations( inspected, method );
168    }
169 
170    public void preInspectConstructor( Class inspected, Constructor constructor )
171        throws Exception
172    {
173        InspectStrategy straqtegy = getStrategy();
174        if( strategy == null ) {
175            return;
176        }
177        strategy.preInspectConstructor( inspected, constructor );
178    }
179 
180    public void preInspectConstructors( Class inspected )
181        throws Exception
182    {
183        InspectStrategy straqtegy = getStrategy();
184        if( strategy == null ) {
185            return;
186        }
187        strategy.preInspectConstructors( inspected );
188    }
189 
190    public void preInspectField( Class inspected, Field field )
191        throws Exception
192    {
193        InspectStrategy straqtegy = getStrategy();
194        if( strategy == null ) {
195            return;
196        }
197        strategy.preInspectField( inspected, field );
198    }
199 
200    public void preInspectFields( Class inspected )
201        throws Exception
202    {
203        InspectStrategy straqtegy = getStrategy();
204        if( strategy == null ) {
205            return;
206        }
207        strategy.preInspectFields( inspected );
208    }
209 
210    public void preInspectMethod( Class inspected, Method method )
211        throws Exception
212    {
213        InspectStrategy straqtegy = getStrategy();
214        if( strategy == null ) {
215            return;
216        }
217        strategy.preInspectMethod( inspected, method );
218    }
219 
220    public void preInspectMethods( Class inspected )
221        throws Exception
222    {
223        InspectStrategy straqtegy = getStrategy();
224        if( strategy == null ) {
225            return;
226        }
227        strategy.preInspectMethods( inspected );
228    }
229 
230    public void preInspectParameterType( Class inspected, Class<? > parameterType )
231        throws Exception
232    {
233        InspectStrategy straqtegy = getStrategy();
234        if( strategy == null ) {
235            return;
236        }
237        strategy.preInspectParameterType( inspected, parameterType );
238    }
239 
240    public void preInspectParameterTypes( Class inspected, Constructor constructor )
241        throws Exception
242    {
243        InspectStrategy straqtegy = getStrategy();
244        if( strategy == null ) {
245            return;
246        }
247        strategy.preInspectParameterTypes( inspected, constructor );
248    }
249 
250    public void preInspectParameterTypes( Class inspected, Method method )
251        throws Exception
252    {
253        InspectStrategy straqtegy = getStrategy();
254        if( strategy == null ) {
255            return;
256        }
257        strategy.preInspectParameterTypes( inspected, method );
258    }
259 
260    public void postInspect( Class inspected )
261        throws Exception
262    {
263        InspectStrategy straqtegy = getStrategy();
264        if( strategy == null ) {
265            return;
266        }
267        strategy.postInspect( inspected );
268    }
269 
270    public void postInspectAnnotation( Class inspected, Annotation annotation )
271        throws Exception
272    {
273        InspectStrategy straqtegy = getStrategy();
274        if( strategy == null ) {
275            return;
276        }
277        strategy.postInspectAnnotation( inspected, annotation );
278    }
279 
280    public void postInspectAnnotations( Class inspected, Constructor constructor )
281        throws Exception
282    {
283        InspectStrategy straqtegy = getStrategy();
284        if( strategy == null ) {
285            return;
286        }
287        strategy.postInspectAnnotations( inspected, constructor );
288    }
289 
290    public void postInspectAnnotations( Class inspected, Field field )
291        throws Exception
292    {
293        InspectStrategy straqtegy = getStrategy();
294        if( strategy == null ) {
295            return;
296        }
297        strategy.postInspectAnnotations( inspected, field );
298    }
299 
300    public void postInspectAnnotations( Class inspected, Method method )
301        throws Exception
302    {
303        InspectStrategy straqtegy = getStrategy();
304        if( strategy == null ) {
305            return;
306        }
307        strategy.postInspectAnnotations( inspected, method );
308    }
309 
310    public void postInspectConstructor( Class inspected, Constructor constructor )
311        throws Exception
312    {
313        InspectStrategy straqtegy = getStrategy();
314        if( strategy == null ) {
315            return;
316        }
317        strategy.postInspectConstructor( inspected, constructor );
318    }
319 
320    public void postInspectConstructors( Class inspected )
321        throws Exception
322    {
323        InspectStrategy straqtegy = getStrategy();
324        if( strategy == null ) {
325            return;
326        }
327        strategy.postInspectConstructors( inspected );
328    }
329 
330    public void postInspectField( Class inspected, Field field )
331        throws Exception
332    {
333        InspectStrategy straqtegy = getStrategy();
334        if( strategy == null ) {
335            return;
336        }
337        strategy.postInspectField( inspected, field );
338    }
339 
340    public void postInspectFields( Class inspected )
341        throws Exception
342    {
343        InspectStrategy straqtegy = getStrategy();
344        if( strategy == null ) {
345            return;
346        }
347        strategy.postInspectFields( inspected );
348    }
349 
350    public void postInspectMethod( Class inspected, Method method )
351        throws Exception
352    {
353        InspectStrategy straqtegy = getStrategy();
354        if( strategy == null ) {
355            return;
356        }
357        strategy.postInspectMethod( inspected, method );
358    }
359 
360    public void postInspectMethods( Class inspected )
361        throws Exception
362    {
363        InspectStrategy straqtegy = getStrategy();
364        if( strategy == null ) {
365            return;
366        }
367        strategy.postInspectMethods( inspected );
368    }
369 
370    public void postInspectParameterType( Class inspected, Class<? > parameterType )
371        throws Exception
372    {
373        InspectStrategy straqtegy = getStrategy();
374        if( strategy == null ) {
375            return;
376        }
377        strategy.postInspectParameterType( inspected, parameterType );
378    }
379 
380    public void postInspectParameterTypes( Class inspected, Constructor constructor )
381        throws Exception
382    {
383        InspectStrategy straqtegy = getStrategy();
384        if( strategy == null ) {
385            return;
386        }
387        strategy.postInspectParameterTypes( inspected, constructor );
388    }
389 
390    public void postInspectParameterTypes( Class inspected, Method method )
391        throws Exception
392    {
393        InspectStrategy straqtegy = getStrategy();
394        if( strategy == null ) {
395            return;
396        }
397        strategy.postInspectParameterTypes( inspected, method );
398    }
399 
400    public boolean inspect( Class inspected )
401        throws Exception
402    {
403        InspectStrategy straqtegy = getStrategy();
404        if( strategy == null ) {
405            return false;
406        }
407        return strategy.inspect( inspected );
408    }
409 
410    public boolean inspectAnnotation( Class inspected, Annotation annotation )
411        throws Exception
412    {
413        InspectStrategy straqtegy = getStrategy();
414        if( strategy == null ) {
415            return false;
416        }
417        return strategy.inspectAnnotation( inspected, annotation );
418    }
419 
420    public boolean inspectAnnotations( Class inspected, Field field )
421        throws Exception
422    {
423        InspectStrategy straqtegy = getStrategy();
424        if( strategy == null ) {
425            return false;
426        }
427        return strategy.inspectAnnotations( inspected, field );
428    }
429 
430    public boolean inspectAnnotations( Class inspected, Method method )
431        throws Exception
432    {
433        InspectStrategy straqtegy = getStrategy();
434        if( strategy == null ) {
435            return false;
436        }
437        return strategy.inspectAnnotations( inspected, method );
438 
439    }
440 
441    public boolean inspectAnnotations( Class inspected, Constructor constructor )
442        throws Exception
443    {
444        InspectStrategy straqtegy = getStrategy();
445        if( strategy == null ) {
446            return false;
447        }
448        return strategy.inspectAnnotations( inspected, constructor );
449    }
450 
451    public boolean inspectConstructor( Class inspected, Constructor constructor )
452        throws Exception
453    {
454        InspectStrategy straqtegy = getStrategy();
455        if( strategy == null ) {
456            return false;
457        }
458        return strategy.inspectConstructor( inspected, constructor );
459    }
460 
461    public boolean inspectConstructors( Class inspected )
462        throws Exception
463    {
464        InspectStrategy straqtegy = getStrategy();
465        if( strategy == null ) {
466            return false;
467        }
468        return strategy.inspectConstructors( inspected );
469    }
470 
471    public boolean inspectField( Class inspected, Field field )
472        throws Exception
473    {
474        InspectStrategy straqtegy = getStrategy();
475        if( strategy == null ) {
476            return false;
477        }
478        return strategy.inspectField( inspected, field );
479    }
480 
481    public boolean inspectFields( Class inspected )
482        throws Exception
483    {
484        InspectStrategy straqtegy = getStrategy();
485        if( strategy == null ) {
486            return false;
487        }
488        return strategy.inspectFields( inspected );
489    }
490 
491    public boolean inspectMethod( Class inspected, Method method )
492        throws Exception
493    {
494        InspectStrategy straqtegy = getStrategy();
495        if( strategy == null ) {
496            return false;
497        }
498        return strategy.inspectMethod( inspected, method );
499    }
500 
501    public boolean inspectMethods( Class inspected )
502        throws Exception
503    {
504        InspectStrategy straqtegy = getStrategy();
505        if( strategy == null ) {
506            return false;
507        }
508        return strategy.inspectMethods( inspected );
509 
510    }
511 
512    public boolean inspectParameterType( Class inspected, Class<? > parameterType )
513        throws Exception
514    {
515        InspectStrategy straqtegy = getStrategy();
516        if( strategy == null ) {
517            return false;
518        }
519        return strategy.inspectParameterType( inspected, parameterType );
520    }
521 
522    public boolean inspectParameterTypes( Class inspected, Method method )
523        throws Exception
524    {
525        InspectStrategy straqtegy = getStrategy();
526        if( strategy == null ) {
527            return false;
528        }
529        return strategy.inspectParameterTypes( inspected, method );
530    }
531 
532    public boolean inspectParameterTypes( Class inspected, Constructor constructor )
533        throws Exception
534    {
535        InspectStrategy straqtegy = getStrategy();
536        if( strategy == null ) {
537            return false;
538        }
539        return strategy.inspectParameterTypes( inspected, constructor );
540 
541    }
542}

[all classes][org.jsesoft.ri]
EMMA 2.0.5312 (C) Vladimir Roubtsov