Package serp.bytecode
Class TypedInstruction
java.lang.Object
serp.bytecode.CodeEntry
serp.bytecode.Instruction
serp.bytecode.TypedInstruction
- All Implemented Interfaces:
BCEntity
,VisitAcceptor
- Direct Known Subclasses:
ArrayInstruction
,ClassInstruction
,CmpInstruction
,ConstantInstruction
,ConvertInstruction
,LocalVariableInstruction
,MathInstruction
,NewArrayInstruction
,ReturnInstruction
,StackInstruction
Any typed instruction.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetType()
Return the type for this instruction.Return the type for this instruction.abstract String
Return the type name for this instruction.(package private) String
Return the type for the given name.Set the type of this instruction.abstract TypedInstruction
Set the type of this instruction.Set the type of this instruction.Methods inherited from class serp.bytecode.Instruction
acceptVisit, equalsInstruction, getByteIndex, getClassLoader, getCode, getLength, getLineNumber, getLogicalStackChange, getName, getOpcode, getPool, getProject, getStackChange, invalidate, invalidateByteIndexes, isValid, read, read, setOpcode, write
-
Field Details
-
_opcodeTypes
-
-
Constructor Details
-
Method Details
-
mapType
Return the type for the given name. Takes into account the given mappings and the demote flag.- Parameters:
mappings
- mappings of one type to another; for example, array instruction treat booleans as ints, so to reflect that there should be an index x of the array such that mappings[x][0] = boolean.class and mappings[x][1] = int.class; may be null if no special mappings are neededdemote
- if true, all object types will be demoted to Object.class
-
getTypeName
Return the type name for this instruction. If the type has not been set, this method will return null. -
getType
Return the type for this instruction. If the type has not been set, this method will return null. -
getTypeBC
Return the type for this instruction. If the type has not been set, this method will return null. -
setType
Set the type of this instruction. Types that have no direct support will be converted accordingly.- Returns:
- this instruction, for method chaining
-
setType
Set the type of this instruction. Types that have no direct support will be converted accordingly.- Returns:
- this instruction, for method chaining
-
setType
Set the type of this instruction. Types that have no direct support will be converted accordingly.- Returns:
- this instruction, for method chaining
-