Package org.apache.bcel.verifier.statics
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 thataccept()Visitor instances) havetoString()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 aCodeinstance) is not satisfying the verifier's constraints, but in this case it could be possible for thetoString()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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringtoString()Returns the String representation.private java.lang.StringtoString(Node obj)Returns the String representation of the Node object obj; this is obj.toString() if it does not throw any RuntimeException, or else it is a string derived only from obj's class name.voidvisitAnnotation(Annotations obj)Visits an Annotations attribute.voidvisitAnnotationDefault(AnnotationDefault obj)Visits an AnnotationDefault attribute.voidvisitAnnotationEntry(AnnotationEntry obj)Visits an AnnotationEntry.voidvisitBootstrapMethods(BootstrapMethods obj)Visits a BootstrapMethods attribute.voidvisitCode(Code obj)Visits a Code attribute.voidvisitCodeException(CodeException obj)Visits a CodeException.voidvisitConstantClass(ConstantClass obj)Visits a ConstantClass.voidvisitConstantDouble(ConstantDouble obj)Visits a ConstantDouble.voidvisitConstantDynamic(ConstantDynamic obj)Visits a ConstantDynamic.voidvisitConstantFieldref(ConstantFieldref obj)Visits a ConstantFieldref.voidvisitConstantFloat(ConstantFloat obj)Visits a ConstantFloat.voidvisitConstantInteger(ConstantInteger obj)Visits a ConstantInteger.voidvisitConstantInterfaceMethodref(ConstantInterfaceMethodref obj)Visits a ConstantInterfaceMethodref.voidvisitConstantInvokeDynamic(ConstantInvokeDynamic obj)Visits a ConstantInvokeDynamic.voidvisitConstantLong(ConstantLong obj)Visits a ConstantLong.voidvisitConstantMethodHandle(ConstantMethodHandle obj)Visits a ConstantMethodHandle.voidvisitConstantMethodref(ConstantMethodref obj)Visits a ConstantMethodref.voidvisitConstantMethodType(ConstantMethodType obj)Visits a ConstantMethodType.voidvisitConstantModule(ConstantModule obj)Visits a ConstantModule.voidvisitConstantNameAndType(ConstantNameAndType obj)Visits a ConstantNameAndType.voidvisitConstantPackage(ConstantPackage obj)Visits a ConstantPackage.voidvisitConstantPool(ConstantPool obj)Visits a ConstantPool.voidvisitConstantString(ConstantString obj)Visits a ConstantString.voidvisitConstantUtf8(ConstantUtf8 obj)Visits a ConstantUtf8.voidvisitConstantValue(ConstantValue obj)Visits a ConstantValue attribute.voidvisitDeprecated(Deprecated obj)Visits a Deprecated attribute.voidvisitEnclosingMethod(EnclosingMethod obj)Visits an EnclosingMethod attribute.voidvisitExceptionTable(ExceptionTable obj)Visits an ExceptionTable attribute.voidvisitField(Field obj)Visits a Field.voidvisitInnerClass(InnerClass obj)Visits an InnerClass.voidvisitInnerClasses(InnerClasses obj)Visits an InnerClasses attribute.voidvisitJavaClass(JavaClass obj)Visits a JavaClass.voidvisitLineNumber(LineNumber obj)Visits a LineNumber.voidvisitLineNumberTable(LineNumberTable obj)Visits a LineNumberTable attribute.voidvisitLocalVariable(LocalVariable obj)Visits a LocalVariable.voidvisitLocalVariableTable(LocalVariableTable obj)Visits a LocalVariableTable attribute.voidvisitLocalVariableTypeTable(LocalVariableTypeTable obj)Visits a LocalVariableTypeTable attribute.voidvisitMethod(Method obj)Visits a Method.voidvisitMethodParameters(MethodParameters obj)Visits a MethodParameters attribute.voidvisitNestMembers(NestMembers obj)Visits a NestMembers attribute.voidvisitParameterAnnotation(ParameterAnnotations obj)Visits a ParameterAnnotations attribute.voidvisitParameterAnnotationEntry(ParameterAnnotationEntry obj)Visits a ParameterAnnotationEntry.voidvisitRecord(Record obj)Visits aRecordobject.voidvisitRecordComponent(RecordComponentInfo obj)Visits aRecordComponentInfoobject.voidvisitSignature(Signature obj)Visits a Signature attribute.voidvisitSourceFile(SourceFile obj)Visits a SourceFile attribute.voidvisitStackMap(StackMap obj)Visits a StackMap attribute.voidvisitStackMapEntry(StackMapEntry obj)Visits a StackMapEntry.voidvisitSynthetic(Synthetic obj)Visits a Synthetic attribute.voidvisitUnknown(Unknown obj)Visits an Unknown attribute.-
Methods inherited from class org.apache.bcel.classfile.EmptyVisitor
visitMethodParameter, visitModule, visitModuleExports, visitModuleMainClass, visitModuleOpens, visitModulePackages, visitModuleProvides, visitModuleRequires, visitNestHost, visitStackMapType
-
-
-
-
Field Detail
-
tostring
private java.lang.String tostring
The string representation, created by a visitXXX() method, output by toString().
-
n
private final Node n
The node we ask for its string representation. Not really needed; only for debug output.
-
-
Constructor Detail
-
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 Detail
-
toString
public java.lang.String toString()
Returns the String representation.- Overrides:
toStringin classjava.lang.Object
-
toString
private java.lang.String toString(Node obj)
Returns the String representation of the Node object obj; this is obj.toString() if it does not throw any RuntimeException, or else it is a string derived only from obj's class name.
-
visitAnnotation
public void visitAnnotation(Annotations obj)
Description copied from interface:VisitorVisits an Annotations attribute.- Specified by:
visitAnnotationin interfaceVisitor- Overrides:
visitAnnotationin classEmptyVisitor- Parameters:
obj- the attribute.- Since:
- 6.0
-
visitAnnotationDefault
public void visitAnnotationDefault(AnnotationDefault obj)
Description copied from interface:VisitorVisits an AnnotationDefault attribute.- Specified by:
visitAnnotationDefaultin interfaceVisitor- Overrides:
visitAnnotationDefaultin classEmptyVisitor- Parameters:
obj- the attribute.- Since:
- 6.0
-
visitAnnotationEntry
public void visitAnnotationEntry(AnnotationEntry obj)
Description copied from interface:VisitorVisits an AnnotationEntry.- Specified by:
visitAnnotationEntryin interfaceVisitor- Overrides:
visitAnnotationEntryin classEmptyVisitor- Parameters:
obj- the annotation entry.- Since:
- 6.0
-
visitBootstrapMethods
public void visitBootstrapMethods(BootstrapMethods obj)
Description copied from interface:VisitorVisits a BootstrapMethods attribute.- Specified by:
visitBootstrapMethodsin interfaceVisitor- Overrides:
visitBootstrapMethodsin classEmptyVisitor- Parameters:
obj- the attribute.- Since:
- 6.0
-
visitCode
public void visitCode(Code obj)
Description copied from interface:VisitorVisits a Code attribute.- Specified by:
visitCodein interfaceVisitor- Overrides:
visitCodein classEmptyVisitor- Parameters:
obj- the attribute.
-
visitCodeException
public void visitCodeException(CodeException obj)
Description copied from interface:VisitorVisits a CodeException.- Specified by:
visitCodeExceptionin interfaceVisitor- Overrides:
visitCodeExceptionin classEmptyVisitor- Parameters:
obj- the exception.
-
visitConstantClass
public void visitConstantClass(ConstantClass obj)
Description copied from interface:VisitorVisits a ConstantClass.- Specified by:
visitConstantClassin interfaceVisitor- Overrides:
visitConstantClassin classEmptyVisitor- Parameters:
obj- the constant.
-
visitConstantDouble
public void visitConstantDouble(ConstantDouble obj)
Description copied from interface:VisitorVisits a ConstantDouble.- Specified by:
visitConstantDoublein interfaceVisitor- Overrides:
visitConstantDoublein classEmptyVisitor- Parameters:
obj- the constant.
-
visitConstantDynamic
public void visitConstantDynamic(ConstantDynamic obj)
Description copied from interface:VisitorVisits a ConstantDynamic.- Specified by:
visitConstantDynamicin interfaceVisitor- Overrides:
visitConstantDynamicin classEmptyVisitor- Parameters:
obj- the constant.- Since:
- 6.6.0
-
visitConstantFieldref
public void visitConstantFieldref(ConstantFieldref obj)
Description copied from interface:VisitorVisits a ConstantFieldref.- Specified by:
visitConstantFieldrefin interfaceVisitor- Overrides:
visitConstantFieldrefin classEmptyVisitor- Parameters:
obj- the constant.
-
visitConstantFloat
public void visitConstantFloat(ConstantFloat obj)
Description copied from interface:VisitorVisits a ConstantFloat.- Specified by:
visitConstantFloatin interfaceVisitor- Overrides:
visitConstantFloatin classEmptyVisitor- Parameters:
obj- the constant.
-
visitConstantInteger
public void visitConstantInteger(ConstantInteger obj)
Description copied from interface:VisitorVisits a ConstantInteger.- Specified by:
visitConstantIntegerin interfaceVisitor- Overrides:
visitConstantIntegerin classEmptyVisitor- Parameters:
obj- the constant.
-
visitConstantInterfaceMethodref
public void visitConstantInterfaceMethodref(ConstantInterfaceMethodref obj)
Description copied from interface:VisitorVisits a ConstantInterfaceMethodref.- Specified by:
visitConstantInterfaceMethodrefin interfaceVisitor- Overrides:
visitConstantInterfaceMethodrefin classEmptyVisitor- Parameters:
obj- the constant.
-
visitConstantInvokeDynamic
public void visitConstantInvokeDynamic(ConstantInvokeDynamic obj)
Description copied from interface:VisitorVisits a ConstantInvokeDynamic.- Specified by:
visitConstantInvokeDynamicin interfaceVisitor- Overrides:
visitConstantInvokeDynamicin classEmptyVisitor- Parameters:
obj- the constant.- Since:
- 6.0
-
visitConstantLong
public void visitConstantLong(ConstantLong obj)
Description copied from interface:VisitorVisits a ConstantLong.- Specified by:
visitConstantLongin interfaceVisitor- Overrides:
visitConstantLongin classEmptyVisitor- Parameters:
obj- the constant.
-
visitConstantMethodHandle
public void visitConstantMethodHandle(ConstantMethodHandle obj)
Description copied from interface:VisitorVisits a ConstantMethodHandle.- Specified by:
visitConstantMethodHandlein interfaceVisitor- Overrides:
visitConstantMethodHandlein classEmptyVisitor- Parameters:
obj- the constant.- Since:
- 6.0
-
visitConstantMethodref
public void visitConstantMethodref(ConstantMethodref obj)
Description copied from interface:VisitorVisits a ConstantMethodref.- Specified by:
visitConstantMethodrefin interfaceVisitor- Overrides:
visitConstantMethodrefin classEmptyVisitor- Parameters:
obj- the constant.
-
visitConstantMethodType
public void visitConstantMethodType(ConstantMethodType obj)
Description copied from interface:VisitorVisits a ConstantMethodType.- Specified by:
visitConstantMethodTypein interfaceVisitor- Overrides:
visitConstantMethodTypein classEmptyVisitor- Parameters:
obj- the constant.- Since:
- 6.0
-
visitConstantModule
public void visitConstantModule(ConstantModule obj)
Description copied from interface:VisitorVisits a ConstantModule.- Specified by:
visitConstantModulein interfaceVisitor- Overrides:
visitConstantModulein classEmptyVisitor- Parameters:
obj- the constant.- Since:
- 6.6.0
-
visitConstantNameAndType
public void visitConstantNameAndType(ConstantNameAndType obj)
Description copied from interface:VisitorVisits a ConstantNameAndType.- Specified by:
visitConstantNameAndTypein interfaceVisitor- Overrides:
visitConstantNameAndTypein classEmptyVisitor- Parameters:
obj- the constant.
-
visitConstantPackage
public void visitConstantPackage(ConstantPackage obj)
Description copied from interface:VisitorVisits a ConstantPackage.- Specified by:
visitConstantPackagein interfaceVisitor- Overrides:
visitConstantPackagein classEmptyVisitor- Parameters:
obj- the constant.- Since:
- 6.6.0
-
visitConstantPool
public void visitConstantPool(ConstantPool obj)
Description copied from interface:VisitorVisits a ConstantPool.- Specified by:
visitConstantPoolin interfaceVisitor- Overrides:
visitConstantPoolin classEmptyVisitor- Parameters:
obj- the constant pool.
-
visitConstantString
public void visitConstantString(ConstantString obj)
Description copied from interface:VisitorVisits a ConstantString.- Specified by:
visitConstantStringin interfaceVisitor- Overrides:
visitConstantStringin classEmptyVisitor- Parameters:
obj- the constant.
-
visitConstantUtf8
public void visitConstantUtf8(ConstantUtf8 obj)
Description copied from interface:VisitorVisits a ConstantUtf8.- Specified by:
visitConstantUtf8in interfaceVisitor- Overrides:
visitConstantUtf8in classEmptyVisitor- Parameters:
obj- the constant.
-
visitConstantValue
public void visitConstantValue(ConstantValue obj)
Description copied from interface:VisitorVisits a ConstantValue attribute.- Specified by:
visitConstantValuein interfaceVisitor- Overrides:
visitConstantValuein classEmptyVisitor- Parameters:
obj- the attribute.
-
visitDeprecated
public void visitDeprecated(Deprecated obj)
Description copied from interface:VisitorVisits a Deprecated attribute.- Specified by:
visitDeprecatedin interfaceVisitor- Overrides:
visitDeprecatedin classEmptyVisitor- Parameters:
obj- the attribute.
-
visitEnclosingMethod
public void visitEnclosingMethod(EnclosingMethod obj)
Description copied from interface:VisitorVisits an EnclosingMethod attribute.- Specified by:
visitEnclosingMethodin interfaceVisitor- Overrides:
visitEnclosingMethodin classEmptyVisitor- Parameters:
obj- the attribute.- Since:
- 6.0
-
visitExceptionTable
public void visitExceptionTable(ExceptionTable obj)
Description copied from interface:VisitorVisits an ExceptionTable attribute.- Specified by:
visitExceptionTablein interfaceVisitor- Overrides:
visitExceptionTablein classEmptyVisitor- Parameters:
obj- the attribute.
-
visitField
public void visitField(Field obj)
Description copied from interface:VisitorVisits a Field.- Specified by:
visitFieldin interfaceVisitor- Overrides:
visitFieldin classEmptyVisitor- Parameters:
obj- the field.
-
visitInnerClass
public void visitInnerClass(InnerClass obj)
Description copied from interface:VisitorVisits an InnerClass.- Specified by:
visitInnerClassin interfaceVisitor- Overrides:
visitInnerClassin classEmptyVisitor- Parameters:
obj- the inner class.
-
visitInnerClasses
public void visitInnerClasses(InnerClasses obj)
Description copied from interface:VisitorVisits an InnerClasses attribute.- Specified by:
visitInnerClassesin interfaceVisitor- Overrides:
visitInnerClassesin classEmptyVisitor- Parameters:
obj- the attribute.
-
visitJavaClass
public void visitJavaClass(JavaClass obj)
Description copied from interface:VisitorVisits a JavaClass.- Specified by:
visitJavaClassin interfaceVisitor- Overrides:
visitJavaClassin classEmptyVisitor- Parameters:
obj- the class.
-
visitLineNumber
public void visitLineNumber(LineNumber obj)
Description copied from interface:VisitorVisits a LineNumber.- Specified by:
visitLineNumberin interfaceVisitor- Overrides:
visitLineNumberin classEmptyVisitor- Parameters:
obj- the line number.
-
visitLineNumberTable
public void visitLineNumberTable(LineNumberTable obj)
Description copied from interface:VisitorVisits a LineNumberTable attribute.- Specified by:
visitLineNumberTablein interfaceVisitor- Overrides:
visitLineNumberTablein classEmptyVisitor- Parameters:
obj- the attribute.
-
visitLocalVariable
public void visitLocalVariable(LocalVariable obj)
Description copied from interface:VisitorVisits a LocalVariable.- Specified by:
visitLocalVariablein interfaceVisitor- Overrides:
visitLocalVariablein classEmptyVisitor- Parameters:
obj- the local variable.
-
visitLocalVariableTable
public void visitLocalVariableTable(LocalVariableTable obj)
Description copied from interface:VisitorVisits a LocalVariableTable attribute.- Specified by:
visitLocalVariableTablein interfaceVisitor- Overrides:
visitLocalVariableTablein classEmptyVisitor- Parameters:
obj- the attribute.
-
visitLocalVariableTypeTable
public void visitLocalVariableTypeTable(LocalVariableTypeTable obj)
Description copied from interface:VisitorVisits a LocalVariableTypeTable attribute.- Specified by:
visitLocalVariableTypeTablein interfaceVisitor- Overrides:
visitLocalVariableTypeTablein classEmptyVisitor- Parameters:
obj- the attribute.- Since:
- 6.0
-
visitMethod
public void visitMethod(Method obj)
Description copied from interface:VisitorVisits a Method.- Specified by:
visitMethodin interfaceVisitor- Overrides:
visitMethodin classEmptyVisitor- Parameters:
obj- the method.
-
visitMethodParameters
public void visitMethodParameters(MethodParameters obj)
Description copied from interface:VisitorVisits a MethodParameters attribute.- Specified by:
visitMethodParametersin interfaceVisitor- Overrides:
visitMethodParametersin classEmptyVisitor- Parameters:
obj- the attribute.- Since:
- 6.0
-
visitNestMembers
public void visitNestMembers(NestMembers obj)
Description copied from interface:VisitorVisits a NestMembers attribute.- Specified by:
visitNestMembersin interfaceVisitor- Overrides:
visitNestMembersin classEmptyVisitor- Parameters:
obj- the attribute.- Since:
- 6.4.0
-
visitParameterAnnotation
public void visitParameterAnnotation(ParameterAnnotations obj)
Description copied from interface:VisitorVisits a ParameterAnnotations attribute.- Specified by:
visitParameterAnnotationin interfaceVisitor- Overrides:
visitParameterAnnotationin classEmptyVisitor- Parameters:
obj- the attribute.- Since:
- 6.0
-
visitParameterAnnotationEntry
public void visitParameterAnnotationEntry(ParameterAnnotationEntry obj)
Description copied from interface:VisitorVisits a ParameterAnnotationEntry.- Specified by:
visitParameterAnnotationEntryin interfaceVisitor- Overrides:
visitParameterAnnotationEntryin classEmptyVisitor- Parameters:
obj- the annotation entry.- Since:
- 6.0
-
visitRecord
public void visitRecord(Record obj)
Description copied from interface:VisitorVisits aRecordobject.- Parameters:
obj- Record to visit.
-
visitRecordComponent
public void visitRecordComponent(RecordComponentInfo obj)
Description copied from interface:VisitorVisits aRecordComponentInfoobject.- Parameters:
obj- component to visit.
-
visitSignature
public void visitSignature(Signature obj)
Description copied from interface:VisitorVisits a Signature attribute.- Specified by:
visitSignaturein interfaceVisitor- Overrides:
visitSignaturein classEmptyVisitor- Parameters:
obj- the attribute.
-
visitSourceFile
public void visitSourceFile(SourceFile obj)
Description copied from interface:VisitorVisits a SourceFile attribute.- Specified by:
visitSourceFilein interfaceVisitor- Overrides:
visitSourceFilein classEmptyVisitor- Parameters:
obj- the attribute.
-
visitStackMap
public void visitStackMap(StackMap obj)
Description copied from interface:VisitorVisits a StackMap attribute.- Specified by:
visitStackMapin interfaceVisitor- Overrides:
visitStackMapin classEmptyVisitor- Parameters:
obj- the attribute.
-
visitStackMapEntry
public void visitStackMapEntry(StackMapEntry obj)
Description copied from interface:VisitorVisits a StackMapEntry.- Specified by:
visitStackMapEntryin interfaceVisitor- Overrides:
visitStackMapEntryin classEmptyVisitor- Parameters:
obj- the entry.- Since:
- 6.0
-
visitSynthetic
public void visitSynthetic(Synthetic obj)
Description copied from interface:VisitorVisits a Synthetic attribute.- Specified by:
visitSyntheticin interfaceVisitor- Overrides:
visitSyntheticin classEmptyVisitor- Parameters:
obj- the attribute.
-
visitUnknown
public void visitUnknown(Unknown obj)
Description copied from interface:VisitorVisits an Unknown attribute.- Specified by:
visitUnknownin interfaceVisitor- Overrides:
visitUnknownin classEmptyVisitor- Parameters:
obj- the attribute.
-
-