# Class StringRepresentation

java.lang.Object
org.apache.bcel.classfile.EmptyVisitor
org.apache.bcel.verifier.statics.StringRepresentation

All Implemented Interfaces:
  `Visitor`

public class StringRepresentation extends EmptyVisitor
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 (for example 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.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `StringRepresentation(Node n)`
  Creates a new StringRepresentation object which is the representation of n.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `toString()`
  Returns the String representation.
  `void`
  `visitAnnotation(Annotations obj)`
  `void`
  `visitAnnotationDefault(AnnotationDefault obj)`
  `void`
  `visitAnnotationEntry(AnnotationEntry obj)`
  `void`
  `visitBootstrapMethods(BootstrapMethods obj)`
  `void`
  `visitCode(Code obj)`
  /////////////////////////////
  `void`
  `visitCodeException(CodeException obj)`
  `void`
  `visitConstantClass(ConstantClass obj)`
  `void`
  `visitConstantDouble(ConstantDouble obj)`
  `void`
  `visitConstantDynamic(ConstantDynamic obj)`
  `void`
  `visitConstantFieldref(ConstantFieldref obj)`
  `void`
  `visitConstantFloat(ConstantFloat obj)`
  `void`
  `visitConstantInteger(ConstantInteger obj)`
  `void`
  `visitConstantInterfaceMethodref(ConstantInterfaceMethodref obj)`
  `void`
  `visitConstantInvokeDynamic(ConstantInvokeDynamic obj)`
  `void`
  `visitConstantLong(ConstantLong obj)`
  `void`
  `visitConstantMethodHandle(ConstantMethodHandle obj)`
  `void`
  `visitConstantMethodref(ConstantMethodref obj)`
  `void`
  `visitConstantMethodType(ConstantMethodType obj)`
  `void`
  `visitConstantModule(ConstantModule obj)`
  `void`
  `visitConstantNameAndType(ConstantNameAndType obj)`
  `void`
  `visitConstantPackage(ConstantPackage obj)`
  `void`
  `visitConstantPool(ConstantPool obj)`
  `void`
  `visitConstantString(ConstantString obj)`
  `void`
  `visitConstantUtf8(ConstantUtf8 obj)`
  `void`
  `visitConstantValue(ConstantValue obj)`
  `void`
  `visitDeprecated(Deprecated obj)`
  `void`
  `visitEnclosingMethod(EnclosingMethod obj)`
  `void`
  `visitExceptionTable(ExceptionTable obj)`
  `void`
  `visitField(Field obj)`
  `void`
  `visitInnerClass(InnerClass obj)`
  `void`
  `visitInnerClasses(InnerClasses obj)`
  `void`
  `visitJavaClass(JavaClass obj)`
  `void`
  `visitLineNumber(LineNumber obj)`
  `void`
  `visitLineNumberTable(LineNumberTable obj)`
  `void`
  `visitLocalVariable(LocalVariable obj)`
  `void`
  `visitLocalVariableTable(LocalVariableTable obj)`
  `void`
  `visitLocalVariableTypeTable(LocalVariableTypeTable obj)`
  `void`
  `visitMethod(Method obj)`
  `void`
  `visitMethodParameters(MethodParameters obj)`
  `void`
  `visitNestMembers(NestMembers obj)`
  `void`
  `visitParameterAnnotation(ParameterAnnotations obj)`
  `void`
  `visitParameterAnnotationEntry(ParameterAnnotationEntry obj)`
  `void`
  `visitRecord(Record obj)`
  Visits a `Record` object.
  `void`
  `visitRecordComponent(RecordComponentInfo obj)`
  Visits a `RecordComponentInfo` object.
  `void`
  `visitSignature(Signature obj)`
  `void`
  `visitSourceFile(SourceFile obj)`
  `void`
  `visitStackMap(StackMap obj)`
  `void`
  `visitStackMapEntry(StackMapEntry obj)`
  `void`
  `visitSynthetic(Synthetic obj)`
  `void`
  `visitUnknown(Unknown obj)`

  ### Methods inherited from class EmptyVisitor

  `visitMethodParameter, visitModule, visitModuleExports, visitModuleMainClass, visitModuleOpens, visitModulePackages, visitModuleProvides, visitModuleRequires, visitNestHost, visitStackMapType`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### StringRepresentation

    public StringRepresentation(Node n)
    Creates a new StringRepresentation object which is the representation of n.
    Parameters:
      `n` - The node to represent.
    See Also:
      - `toString()`

- ## Method Details

  - ### toString

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

  - ### visitAnnotation

    public void visitAnnotation(Annotations obj)
    Specified by:
      `visitAnnotation` in interface `Visitor`
    Overrides:
      `visitAnnotation` in class `EmptyVisitor`
    Since:
      6.0

  - ### visitAnnotationDefault

    public void visitAnnotationDefault(AnnotationDefault obj)
    Specified by:
      `visitAnnotationDefault` in interface `Visitor`
    Overrides:
      `visitAnnotationDefault` in class `EmptyVisitor`
    Since:
      6.0

  - ### visitAnnotationEntry

    public void visitAnnotationEntry(AnnotationEntry obj)
    Specified by:
      `visitAnnotationEntry` in interface `Visitor`
    Overrides:
      `visitAnnotationEntry` in class `EmptyVisitor`
    Since:
      6.0

  - ### visitBootstrapMethods

    public void visitBootstrapMethods(BootstrapMethods obj)
    Specified by:
      `visitBootstrapMethods` in interface `Visitor`
    Overrides:
      `visitBootstrapMethods` in class `EmptyVisitor`
    Since:
      6.0

  - ### visitCode

    public void visitCode(Code obj)
    /////////////////////////////
    Specified by:
      `visitCode` in interface `Visitor`
    Overrides:
      `visitCode` in class `EmptyVisitor`

  - ### visitCodeException

    public void visitCodeException(CodeException obj)
    Specified by:
      `visitCodeException` in interface `Visitor`
    Overrides:
      `visitCodeException` in class `EmptyVisitor`

  - ### visitConstantClass

    public void visitConstantClass(ConstantClass obj)
    Specified by:
      `visitConstantClass` in interface `Visitor`
    Overrides:
      `visitConstantClass` in class `EmptyVisitor`

  - ### visitConstantDouble

    public void visitConstantDouble(ConstantDouble obj)
    Specified by:
      `visitConstantDouble` in interface `Visitor`
    Overrides:
      `visitConstantDouble` in class `EmptyVisitor`

  - ### visitConstantDynamic

    public void visitConstantDynamic(ConstantDynamic obj)
    Specified by:
      `visitConstantDynamic` in interface `Visitor`
    Overrides:
      `visitConstantDynamic` in class `EmptyVisitor`
    Since:
      6.6.0

  - ### visitConstantFieldref

    public void visitConstantFieldref(ConstantFieldref obj)
    Specified by:
      `visitConstantFieldref` in interface `Visitor`
    Overrides:
      `visitConstantFieldref` in class `EmptyVisitor`

  - ### visitConstantFloat

    public void visitConstantFloat(ConstantFloat obj)
    Specified by:
      `visitConstantFloat` in interface `Visitor`
    Overrides:
      `visitConstantFloat` in class `EmptyVisitor`

  - ### visitConstantInteger

    public void visitConstantInteger(ConstantInteger obj)
    Specified by:
      `visitConstantInteger` in interface `Visitor`
    Overrides:
      `visitConstantInteger` in class `EmptyVisitor`

  - ### visitConstantInterfaceMethodref

    public void visitConstantInterfaceMethodref(ConstantInterfaceMethodref obj)
    Specified by:
      `visitConstantInterfaceMethodref` in interface `Visitor`
    Overrides:
      `visitConstantInterfaceMethodref` in class `EmptyVisitor`

  - ### visitConstantInvokeDynamic

    public void visitConstantInvokeDynamic(ConstantInvokeDynamic obj)
    Specified by:
      `visitConstantInvokeDynamic` in interface `Visitor`
    Overrides:
      `visitConstantInvokeDynamic` in class `EmptyVisitor`
    Since:
      6.0

  - ### visitConstantLong

    public void visitConstantLong(ConstantLong obj)
    Specified by:
      `visitConstantLong` in interface `Visitor`
    Overrides:
      `visitConstantLong` in class `EmptyVisitor`

  - ### visitConstantMethodHandle

    public void visitConstantMethodHandle(ConstantMethodHandle obj)
    Specified by:
      `visitConstantMethodHandle` in interface `Visitor`
    Overrides:
      `visitConstantMethodHandle` in class `EmptyVisitor`
    Since:
      6.0

  - ### visitConstantMethodref

    public void visitConstantMethodref(ConstantMethodref obj)
    Specified by:
      `visitConstantMethodref` in interface `Visitor`
    Overrides:
      `visitConstantMethodref` in class `EmptyVisitor`

  - ### visitConstantMethodType

    public void visitConstantMethodType(ConstantMethodType obj)
    Specified by:
      `visitConstantMethodType` in interface `Visitor`
    Overrides:
      `visitConstantMethodType` in class `EmptyVisitor`
    Since:
      6.0

  - ### visitConstantModule

    public void visitConstantModule(ConstantModule obj)
    Specified by:
      `visitConstantModule` in interface `Visitor`
    Overrides:
      `visitConstantModule` in class `EmptyVisitor`
    Since:
      6.6.0

  - ### visitConstantNameAndType

    public void visitConstantNameAndType(ConstantNameAndType obj)
    Specified by:
      `visitConstantNameAndType` in interface `Visitor`
    Overrides:
      `visitConstantNameAndType` in class `EmptyVisitor`

  - ### visitConstantPackage

    public void visitConstantPackage(ConstantPackage obj)
    Specified by:
      `visitConstantPackage` in interface `Visitor`
    Overrides:
      `visitConstantPackage` in class `EmptyVisitor`
    Since:
      6.6.0

  - ### visitConstantPool

    public void visitConstantPool(ConstantPool obj)
    Specified by:
      `visitConstantPool` in interface `Visitor`
    Overrides:
      `visitConstantPool` in class `EmptyVisitor`

  - ### visitConstantString

    public void visitConstantString(ConstantString obj)
    Specified by:
      `visitConstantString` in interface `Visitor`
    Overrides:
      `visitConstantString` in class `EmptyVisitor`

  - ### visitConstantUtf8

    public void visitConstantUtf8(ConstantUtf8 obj)
    Specified by:
      `visitConstantUtf8` in interface `Visitor`
    Overrides:
      `visitConstantUtf8` in class `EmptyVisitor`

  - ### visitConstantValue

    public void visitConstantValue(ConstantValue obj)
    Specified by:
      `visitConstantValue` in interface `Visitor`
    Overrides:
      `visitConstantValue` in class `EmptyVisitor`

  - ### visitDeprecated

    public void visitDeprecated(Deprecated obj)
    Specified by:
      `visitDeprecated` in interface `Visitor`
    Overrides:
      `visitDeprecated` in class `EmptyVisitor`

  - ### visitEnclosingMethod

    public void visitEnclosingMethod(EnclosingMethod obj)
    Specified by:
      `visitEnclosingMethod` in interface `Visitor`
    Overrides:
      `visitEnclosingMethod` in class `EmptyVisitor`
    Since:
      6.0

  - ### visitExceptionTable

    public void visitExceptionTable(ExceptionTable obj)
    Specified by:
      `visitExceptionTable` in interface `Visitor`
    Overrides:
      `visitExceptionTable` in class `EmptyVisitor`

  - ### visitField

    public void visitField(Field obj)
    Specified by:
      `visitField` in interface `Visitor`
    Overrides:
      `visitField` in class `EmptyVisitor`

  - ### visitInnerClass

    public void visitInnerClass(InnerClass obj)
    Specified by:
      `visitInnerClass` in interface `Visitor`
    Overrides:
      `visitInnerClass` in class `EmptyVisitor`

  - ### visitInnerClasses

    public void visitInnerClasses(InnerClasses obj)
    Specified by:
      `visitInnerClasses` in interface `Visitor`
    Overrides:
      `visitInnerClasses` in class `EmptyVisitor`

  - ### visitJavaClass

    public void visitJavaClass(JavaClass obj)
    Specified by:
      `visitJavaClass` in interface `Visitor`
    Overrides:
      `visitJavaClass` in class `EmptyVisitor`

  - ### visitLineNumber

    public void visitLineNumber(LineNumber obj)
    Specified by:
      `visitLineNumber` in interface `Visitor`
    Overrides:
      `visitLineNumber` in class `EmptyVisitor`

  - ### visitLineNumberTable

    public void visitLineNumberTable(LineNumberTable obj)
    Specified by:
      `visitLineNumberTable` in interface `Visitor`
    Overrides:
      `visitLineNumberTable` in class `EmptyVisitor`

  - ### visitLocalVariable

    public void visitLocalVariable(LocalVariable obj)
    Specified by:
      `visitLocalVariable` in interface `Visitor`
    Overrides:
      `visitLocalVariable` in class `EmptyVisitor`

  - ### visitLocalVariableTable

    public void visitLocalVariableTable(LocalVariableTable obj)
    Specified by:
      `visitLocalVariableTable` in interface `Visitor`
    Overrides:
      `visitLocalVariableTable` in class `EmptyVisitor`

  - ### visitLocalVariableTypeTable

    public void visitLocalVariableTypeTable(LocalVariableTypeTable obj)
    Specified by:
      `visitLocalVariableTypeTable` in interface `Visitor`
    Overrides:
      `visitLocalVariableTypeTable` in class `EmptyVisitor`
    Since:
      6.0

  - ### visitMethod

    public void visitMethod(Method obj)
    Specified by:
      `visitMethod` in interface `Visitor`
    Overrides:
      `visitMethod` in class `EmptyVisitor`

  - ### visitMethodParameters

    public void visitMethodParameters(MethodParameters obj)
    Specified by:
      `visitMethodParameters` in interface `Visitor`
    Overrides:
      `visitMethodParameters` in class `EmptyVisitor`
    Since:
      6.0

  - ### visitNestMembers

    public void visitNestMembers(NestMembers obj)
    Specified by:
      `visitNestMembers` in interface `Visitor`
    Overrides:
      `visitNestMembers` in class `EmptyVisitor`
    Since:
      6.4.0

  - ### visitParameterAnnotation

    public void visitParameterAnnotation(ParameterAnnotations obj)
    Specified by:
      `visitParameterAnnotation` in interface `Visitor`
    Overrides:
      `visitParameterAnnotation` in class `EmptyVisitor`
    Since:
      6.0

  - ### visitParameterAnnotationEntry

    public void visitParameterAnnotationEntry(ParameterAnnotationEntry obj)
    Specified by:
      `visitParameterAnnotationEntry` in interface `Visitor`
    Overrides:
      `visitParameterAnnotationEntry` in class `EmptyVisitor`
    Since:
      6.0

  - ### visitRecord

    public void visitRecord(Record obj)
    Description copied from interface: `Visitor`
    Visits a `Record` object.
    Parameters:
      `obj` - Record to visit

  - ### visitRecordComponent

    public void visitRecordComponent(RecordComponentInfo obj)
    Description copied from interface: `Visitor`
    Visits a `RecordComponentInfo` object.
    Parameters:
      `obj` - component to visit

  - ### visitSignature

    public void visitSignature(Signature obj)
    Specified by:
      `visitSignature` in interface `Visitor`
    Overrides:
      `visitSignature` in class `EmptyVisitor`

  - ### visitSourceFile

    public void visitSourceFile(SourceFile obj)
    Specified by:
      `visitSourceFile` in interface `Visitor`
    Overrides:
      `visitSourceFile` in class `EmptyVisitor`

  - ### visitStackMap

    public void visitStackMap(StackMap obj)
    Specified by:
      `visitStackMap` in interface `Visitor`
    Overrides:
      `visitStackMap` in class `EmptyVisitor`

  - ### visitStackMapEntry

    public void visitStackMapEntry(StackMapEntry obj)
    Specified by:
      `visitStackMapEntry` in interface `Visitor`
    Overrides:
      `visitStackMapEntry` in class `EmptyVisitor`
    Since:
      6.0

  - ### visitSynthetic

    public void visitSynthetic(Synthetic obj)
    Specified by:
      `visitSynthetic` in interface `Visitor`
    Overrides:
      `visitSynthetic` in class `EmptyVisitor`

  - ### visitUnknown

    public void visitUnknown(Unknown obj)
    Specified by:
      `visitUnknown` in interface `Visitor`
    Overrides:
      `visitUnknown` in class `EmptyVisitor`