Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: Clazz/jq_FieldVisitor.java


1   // jq_FieldVisitor.java, created Wed Jun 26 12:26:34 2002 by joewhaley
2   // Copyright (C) 2001-3 John Whaley <jwhaley@alum.mit.edu>
3   // Licensed under the terms of the GNU LGPL; see COPYING for details.
4   package Clazz;
5   
6   import java.util.Arrays;
7   import java.util.Iterator;
8   
9   import Util.Collections.AppendIterator;
10  
11  /*
12   * @author  John Whaley <jwhaley@alum.mit.edu>
13   * @version $Id: jq_FieldVisitor.java,v 1.6 2003/05/12 10:05:12 joewhaley Exp $
14   */
15  public interface jq_FieldVisitor {
16  
17      void visitStaticField(jq_StaticField m);
18      void visitInstanceField(jq_InstanceField m);
19      void visitField(jq_Field m);
20      
21      class EmptyVisitor implements jq_FieldVisitor {
22          public void visitStaticField(jq_StaticField m) {}
23          public void visitInstanceField(jq_InstanceField m) {}
24          public void visitField(jq_Field m) {}
25      }
26      
27      class DeclaredFieldVisitor extends jq_TypeVisitor.EmptyVisitor {
28          final jq_FieldVisitor mv; boolean trace;
29          public DeclaredFieldVisitor(jq_FieldVisitor mv) { this.mv = mv; }
30          public DeclaredFieldVisitor(jq_FieldVisitor mv, boolean trace) { this.mv = mv; this.trace = trace; }
31          public void visitClass(jq_Class k) {
32              if (trace) System.out.println(k.toString());
33              Iterator it = new AppendIterator(Arrays.asList(k.getDeclaredStaticFields()).iterator(),
34                                              Arrays.asList(k.getDeclaredInstanceFields()).iterator());
35              while (it.hasNext()) {
36                  jq_Field m = (jq_Field)it.next();
37                  m.accept(mv);
38              }
39          }
40      }
41      
42  }
43