de.fub.bytecode.classfile
Class DescendingVisitor

java.lang.Object
  |
  +--de.fub.bytecode.classfile.DescendingVisitor
All Implemented Interfaces:
Visitor
Direct Known Subclasses:
DefaultVisitor

public class DescendingVisitor
extends java.lang.Object
implements Visitor

Traverses a JavaClass with another Visitor object 'piggy-backed' that is applied to all components of a JavaClass object. I.e. this class supplies the traversal strategy, other classes can make use of it.

Version:
$Id: DescendingVisitor.java,v 1.2 2001/08/15 14:47:50 dahm Exp $
Author:
M. Dahm

Constructor Summary
DescendingVisitor(JavaClass clazz, Visitor visitor)
           
 
Method Summary
 java.lang.Object current()
           
 java.lang.Object predecessor()
           
 java.lang.Object predecessor(int level)
           
 void visit()
          Start traversal.
 void visitCode(Code code)
           
 void visitCodeException(CodeException ce)
           
 void visitConstantClass(ConstantClass constant)
           
 void visitConstantDouble(ConstantDouble constant)
           
 void visitConstantFieldref(ConstantFieldref constant)
           
 void visitConstantFloat(ConstantFloat constant)
           
 void visitConstantInteger(ConstantInteger constant)
           
 void visitConstantInterfaceMethodref(ConstantInterfaceMethodref constant)
           
 void visitConstantLong(ConstantLong constant)
           
 void visitConstantMethodref(ConstantMethodref constant)
           
 void visitConstantNameAndType(ConstantNameAndType constant)
           
 void visitConstantPool(ConstantPool cp)
           
 void visitConstantString(ConstantString constant)
           
 void visitConstantUtf8(ConstantUtf8 constant)
           
 void visitConstantValue(ConstantValue cv)
           
 void visitDeprecated(Deprecated attribute)
           
 void visitExceptionTable(ExceptionTable table)
           
 void visitField(Field field)
           
 void visitInnerClass(InnerClass inner)
           
 void visitInnerClasses(InnerClasses ic)
           
 void visitJavaClass(JavaClass clazz)
           
 void visitLineNumber(LineNumber number)
           
 void visitLineNumberTable(LineNumberTable table)
           
 void visitLocalVariable(LocalVariable var)
           
 void visitLocalVariableTable(LocalVariableTable table)
           
 void visitMethod(Method method)
           
 void visitSourceFile(SourceFile attribute)
           
 void visitStackMap(StackMap table)
           
 void visitStackMapEntry(StackMapEntry var)
           
 void visitSynthetic(Synthetic attribute)
           
 void visitUnknown(Unknown attribute)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DescendingVisitor

public DescendingVisitor(JavaClass clazz,
                         Visitor visitor)
Parameters:
clazz - Class to traverse
visitor - visitor object to apply to all components
Method Detail

predecessor

public java.lang.Object predecessor()
Returns:
container of current entitity, i.e., predecessor during traversal

predecessor

public java.lang.Object predecessor(int level)
Parameters:
level - nesting level, i.e., 0 returns the direct predecessor
Returns:
container of current entitity, i.e., predecessor during traversal

current

public java.lang.Object current()
Returns:
current object

visit

public void visit()
Start traversal.

visitJavaClass

public void visitJavaClass(JavaClass clazz)
Specified by:
visitJavaClass in interface Visitor

visitField

public void visitField(Field field)
Specified by:
visitField in interface Visitor

visitConstantValue

public void visitConstantValue(ConstantValue cv)
Specified by:
visitConstantValue in interface Visitor

visitMethod

public void visitMethod(Method method)
Specified by:
visitMethod in interface Visitor

visitExceptionTable

public void visitExceptionTable(ExceptionTable table)
Specified by:
visitExceptionTable in interface Visitor

visitCode

public void visitCode(Code code)
Specified by:
visitCode in interface Visitor

visitCodeException

public void visitCodeException(CodeException ce)
Specified by:
visitCodeException in interface Visitor

visitLineNumberTable

public void visitLineNumberTable(LineNumberTable table)
Specified by:
visitLineNumberTable in interface Visitor

visitLineNumber

public void visitLineNumber(LineNumber number)
Specified by:
visitLineNumber in interface Visitor

visitLocalVariableTable

public void visitLocalVariableTable(LocalVariableTable table)
Specified by:
visitLocalVariableTable in interface Visitor

visitStackMap

public void visitStackMap(StackMap table)
Specified by:
visitStackMap in interface Visitor

visitStackMapEntry

public void visitStackMapEntry(StackMapEntry var)
Specified by:
visitStackMapEntry in interface Visitor

visitLocalVariable

public void visitLocalVariable(LocalVariable var)
Specified by:
visitLocalVariable in interface Visitor

visitConstantPool

public void visitConstantPool(ConstantPool cp)
Specified by:
visitConstantPool in interface Visitor

visitConstantClass

public void visitConstantClass(ConstantClass constant)
Specified by:
visitConstantClass in interface Visitor

visitConstantDouble

public void visitConstantDouble(ConstantDouble constant)
Specified by:
visitConstantDouble in interface Visitor

visitConstantFieldref

public void visitConstantFieldref(ConstantFieldref constant)
Specified by:
visitConstantFieldref in interface Visitor

visitConstantFloat

public void visitConstantFloat(ConstantFloat constant)
Specified by:
visitConstantFloat in interface Visitor

visitConstantInteger

public void visitConstantInteger(ConstantInteger constant)
Specified by:
visitConstantInteger in interface Visitor

visitConstantInterfaceMethodref

public void visitConstantInterfaceMethodref(ConstantInterfaceMethodref constant)
Specified by:
visitConstantInterfaceMethodref in interface Visitor

visitConstantLong

public void visitConstantLong(ConstantLong constant)
Specified by:
visitConstantLong in interface Visitor

visitConstantMethodref

public void visitConstantMethodref(ConstantMethodref constant)
Specified by:
visitConstantMethodref in interface Visitor

visitConstantNameAndType

public void visitConstantNameAndType(ConstantNameAndType constant)
Specified by:
visitConstantNameAndType in interface Visitor

visitConstantString

public void visitConstantString(ConstantString constant)
Specified by:
visitConstantString in interface Visitor

visitConstantUtf8

public void visitConstantUtf8(ConstantUtf8 constant)
Specified by:
visitConstantUtf8 in interface Visitor

visitInnerClasses

public void visitInnerClasses(InnerClasses ic)
Specified by:
visitInnerClasses in interface Visitor

visitInnerClass

public void visitInnerClass(InnerClass inner)
Specified by:
visitInnerClass in interface Visitor

visitDeprecated

public void visitDeprecated(Deprecated attribute)
Specified by:
visitDeprecated in interface Visitor

visitSourceFile

public void visitSourceFile(SourceFile attribute)
Specified by:
visitSourceFile in interface Visitor

visitSynthetic

public void visitSynthetic(Synthetic attribute)
Specified by:
visitSynthetic in interface Visitor

visitUnknown

public void visitUnknown(Unknown attribute)
Specified by:
visitUnknown in interface Visitor