| Home >> All |
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