BCEL's class file verifier "JustIce"

de.fub.bytecode.verifier.statics
Class StringRepresentation

java.lang.Object
  |
  +--de.fub.bytecode.classfile.EmptyVisitor
        |
        +--de.fub.bytecode.verifier.statics.StringRepresentation
All Implemented Interfaces:
de.fub.bytecode.classfile.Visitor

public class StringRepresentation
extends de.fub.bytecode.classfile.EmptyVisitor
implements de.fub.bytecode.classfile.Visitor

BCEL's Node classes (those from the classfile API that accept() Visitor instances) have toString() methods that were not designed to be robust, this gap is closed by this class. When performing class file verification, it may be useful to output which entity (e.g. a Code instance) is not satisfying the verifier's constraints, but in this case it could be possible for the toString() method to throw a RuntimeException. A (new StringRepresentation(Node n)).toString() never throws any exception. Note that this class also serves as a placeholder for more sophisticated message handling in future versions of JustIce.

Version:
$Id: StringRepresentation.java,v 1.11 2001/08/30 08:45:42 ehaase Exp $
Author:
Enver Haase

Constructor Summary
StringRepresentation(de.fub.bytecode.classfile.Node n)
          Creates a new StringRepresentation object which is the representation of n.
 
Method Summary
 java.lang.String toString()
          Returns the String representation.
 void visitCode(de.fub.bytecode.classfile.Code obj)
           
 void visitCodeException(de.fub.bytecode.classfile.CodeException obj)
           
 void visitConstantClass(de.fub.bytecode.classfile.ConstantClass obj)
           
 void visitConstantDouble(de.fub.bytecode.classfile.ConstantDouble obj)
           
 void visitConstantFieldref(de.fub.bytecode.classfile.ConstantFieldref obj)
           
 void visitConstantFloat(de.fub.bytecode.classfile.ConstantFloat obj)
           
 void visitConstantInteger(de.fub.bytecode.classfile.ConstantInteger obj)
           
 void visitConstantInterfaceMethodref(de.fub.bytecode.classfile.ConstantInterfaceMethodref obj)
           
 void visitConstantLong(de.fub.bytecode.classfile.ConstantLong obj)
           
 void visitConstantMethodref(de.fub.bytecode.classfile.ConstantMethodref obj)
           
 void visitConstantNameAndType(de.fub.bytecode.classfile.ConstantNameAndType obj)
           
 void visitConstantPool(de.fub.bytecode.classfile.ConstantPool obj)
           
 void visitConstantString(de.fub.bytecode.classfile.ConstantString obj)
           
 void visitConstantUtf8(de.fub.bytecode.classfile.ConstantUtf8 obj)
           
 void visitConstantValue(de.fub.bytecode.classfile.ConstantValue obj)
           
 void visitDeprecated(de.fub.bytecode.classfile.Deprecated obj)
           
 void visitExceptionTable(de.fub.bytecode.classfile.ExceptionTable obj)
           
 void visitField(de.fub.bytecode.classfile.Field obj)
           
 void visitInnerClass(de.fub.bytecode.classfile.InnerClass obj)
           
 void visitInnerClasses(de.fub.bytecode.classfile.InnerClasses obj)
           
 void visitJavaClass(de.fub.bytecode.classfile.JavaClass obj)
           
 void visitLineNumber(de.fub.bytecode.classfile.LineNumber obj)
           
 void visitLineNumberTable(de.fub.bytecode.classfile.LineNumberTable obj)
           
 void visitLocalVariable(de.fub.bytecode.classfile.LocalVariable obj)
           
 void visitLocalVariableTable(de.fub.bytecode.classfile.LocalVariableTable obj)
           
 void visitMethod(de.fub.bytecode.classfile.Method obj)
           
 void visitSourceFile(de.fub.bytecode.classfile.SourceFile obj)
           
 void visitSynthetic(de.fub.bytecode.classfile.Synthetic obj)
           
 void visitUnknown(de.fub.bytecode.classfile.Unknown obj)
           
 
Methods inherited from class de.fub.bytecode.classfile.EmptyVisitor
visitStackMap, visitStackMapEntry
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface de.fub.bytecode.classfile.Visitor
visitStackMap, visitStackMapEntry
 

Constructor Detail

StringRepresentation

public StringRepresentation(de.fub.bytecode.classfile.Node n)
Creates a new StringRepresentation object which is the representation of n.
See Also:
toString()
Method Detail

toString

public java.lang.String toString()
Returns the String representation.
Overrides:
toString in class java.lang.Object

visitCode

public void visitCode(de.fub.bytecode.classfile.Code obj)
Specified by:
visitCode in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitCode in class de.fub.bytecode.classfile.EmptyVisitor

visitCodeException

public void visitCodeException(de.fub.bytecode.classfile.CodeException obj)
Specified by:
visitCodeException in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitCodeException in class de.fub.bytecode.classfile.EmptyVisitor

visitConstantClass

public void visitConstantClass(de.fub.bytecode.classfile.ConstantClass obj)
Specified by:
visitConstantClass in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitConstantClass in class de.fub.bytecode.classfile.EmptyVisitor

visitConstantDouble

public void visitConstantDouble(de.fub.bytecode.classfile.ConstantDouble obj)
Specified by:
visitConstantDouble in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitConstantDouble in class de.fub.bytecode.classfile.EmptyVisitor

visitConstantFieldref

public void visitConstantFieldref(de.fub.bytecode.classfile.ConstantFieldref obj)
Specified by:
visitConstantFieldref in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitConstantFieldref in class de.fub.bytecode.classfile.EmptyVisitor

visitConstantFloat

public void visitConstantFloat(de.fub.bytecode.classfile.ConstantFloat obj)
Specified by:
visitConstantFloat in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitConstantFloat in class de.fub.bytecode.classfile.EmptyVisitor

visitConstantInteger

public void visitConstantInteger(de.fub.bytecode.classfile.ConstantInteger obj)
Specified by:
visitConstantInteger in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitConstantInteger in class de.fub.bytecode.classfile.EmptyVisitor

visitConstantInterfaceMethodref

public void visitConstantInterfaceMethodref(de.fub.bytecode.classfile.ConstantInterfaceMethodref obj)
Specified by:
visitConstantInterfaceMethodref in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitConstantInterfaceMethodref in class de.fub.bytecode.classfile.EmptyVisitor

visitConstantLong

public void visitConstantLong(de.fub.bytecode.classfile.ConstantLong obj)
Specified by:
visitConstantLong in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitConstantLong in class de.fub.bytecode.classfile.EmptyVisitor

visitConstantMethodref

public void visitConstantMethodref(de.fub.bytecode.classfile.ConstantMethodref obj)
Specified by:
visitConstantMethodref in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitConstantMethodref in class de.fub.bytecode.classfile.EmptyVisitor

visitConstantNameAndType

public void visitConstantNameAndType(de.fub.bytecode.classfile.ConstantNameAndType obj)
Specified by:
visitConstantNameAndType in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitConstantNameAndType in class de.fub.bytecode.classfile.EmptyVisitor

visitConstantPool

public void visitConstantPool(de.fub.bytecode.classfile.ConstantPool obj)
Specified by:
visitConstantPool in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitConstantPool in class de.fub.bytecode.classfile.EmptyVisitor

visitConstantString

public void visitConstantString(de.fub.bytecode.classfile.ConstantString obj)
Specified by:
visitConstantString in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitConstantString in class de.fub.bytecode.classfile.EmptyVisitor

visitConstantUtf8

public void visitConstantUtf8(de.fub.bytecode.classfile.ConstantUtf8 obj)
Specified by:
visitConstantUtf8 in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitConstantUtf8 in class de.fub.bytecode.classfile.EmptyVisitor

visitConstantValue

public void visitConstantValue(de.fub.bytecode.classfile.ConstantValue obj)
Specified by:
visitConstantValue in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitConstantValue in class de.fub.bytecode.classfile.EmptyVisitor

visitDeprecated

public void visitDeprecated(de.fub.bytecode.classfile.Deprecated obj)
Specified by:
visitDeprecated in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitDeprecated in class de.fub.bytecode.classfile.EmptyVisitor

visitExceptionTable

public void visitExceptionTable(de.fub.bytecode.classfile.ExceptionTable obj)
Specified by:
visitExceptionTable in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitExceptionTable in class de.fub.bytecode.classfile.EmptyVisitor

visitField

public void visitField(de.fub.bytecode.classfile.Field obj)
Specified by:
visitField in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitField in class de.fub.bytecode.classfile.EmptyVisitor

visitInnerClass

public void visitInnerClass(de.fub.bytecode.classfile.InnerClass obj)
Specified by:
visitInnerClass in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitInnerClass in class de.fub.bytecode.classfile.EmptyVisitor

visitInnerClasses

public void visitInnerClasses(de.fub.bytecode.classfile.InnerClasses obj)
Specified by:
visitInnerClasses in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitInnerClasses in class de.fub.bytecode.classfile.EmptyVisitor

visitJavaClass

public void visitJavaClass(de.fub.bytecode.classfile.JavaClass obj)
Specified by:
visitJavaClass in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitJavaClass in class de.fub.bytecode.classfile.EmptyVisitor

visitLineNumber

public void visitLineNumber(de.fub.bytecode.classfile.LineNumber obj)
Specified by:
visitLineNumber in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitLineNumber in class de.fub.bytecode.classfile.EmptyVisitor

visitLineNumberTable

public void visitLineNumberTable(de.fub.bytecode.classfile.LineNumberTable obj)
Specified by:
visitLineNumberTable in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitLineNumberTable in class de.fub.bytecode.classfile.EmptyVisitor

visitLocalVariable

public void visitLocalVariable(de.fub.bytecode.classfile.LocalVariable obj)
Specified by:
visitLocalVariable in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitLocalVariable in class de.fub.bytecode.classfile.EmptyVisitor

visitLocalVariableTable

public void visitLocalVariableTable(de.fub.bytecode.classfile.LocalVariableTable obj)
Specified by:
visitLocalVariableTable in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitLocalVariableTable in class de.fub.bytecode.classfile.EmptyVisitor

visitMethod

public void visitMethod(de.fub.bytecode.classfile.Method obj)
Specified by:
visitMethod in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitMethod in class de.fub.bytecode.classfile.EmptyVisitor

visitSourceFile

public void visitSourceFile(de.fub.bytecode.classfile.SourceFile obj)
Specified by:
visitSourceFile in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitSourceFile in class de.fub.bytecode.classfile.EmptyVisitor

visitSynthetic

public void visitSynthetic(de.fub.bytecode.classfile.Synthetic obj)
Specified by:
visitSynthetic in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitSynthetic in class de.fub.bytecode.classfile.EmptyVisitor

visitUnknown

public void visitUnknown(de.fub.bytecode.classfile.Unknown obj)
Specified by:
visitUnknown in interface de.fub.bytecode.classfile.Visitor
Overrides:
visitUnknown in class de.fub.bytecode.classfile.EmptyVisitor

(c) Enver Haase 2001, released under the FSF's "GPL version 2" license.