Package com.tonic.analysis.frame
Class VerificationType
- java.lang.Object
-
- com.tonic.analysis.frame.VerificationType
-
- Direct Known Subclasses:
VerificationType.ObjectType,VerificationType.PrimitiveType,VerificationType.UninitializedType
public abstract class VerificationType extends Object
A verification type in a StackMapTable frame, as a sealed hierarchy.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classVerificationType.ObjectTypeObject verification type implementation.static classVerificationType.PrimitiveTypePrimitive verification type implementation.static classVerificationType.UninitializedTypeUninitialized verification type implementation.
-
Field Summary
Fields Modifier and Type Field Description static VerificationTypeDOUBLEstatic VerificationTypeFLOATstatic VerificationTypeINTEGERstatic VerificationTypeLONGstatic VerificationTypeNULLstatic intTAG_DOUBLEstatic intTAG_FLOATstatic intTAG_INTEGERstatic intTAG_LONGstatic intTAG_NULLstatic intTAG_OBJECTstatic intTAG_TOPstatic intTAG_UNINITIALIZEDstatic intTAG_UNINITIALIZED_THISstatic VerificationTypeTOPstatic VerificationTypeUNINITIALIZED_THIS
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static VerificationTypefromDescriptor(char c)Gets a verification type from a type descriptor character.static VerificationTypefromDescriptor(String descriptor, int classIndex)Gets a verification type from a full type descriptor.intgetTag()booleanisTwoSlot()Returns true if this type takes two slots.static VerificationTypeobject(int classIndex)Creates an Object verification type with the given constant pool index.static VerificationTypeobject(String className, int classIndex)Creates an Object verification type for a class name.abstract VerificationTypeInfotoVerificationTypeInfo()Converts this VerificationType to a VerificationTypeInfo for writing to class files.static VerificationTypeuninitialized(int newInstructionOffset)Creates an Uninitialized verification type for a NEW instruction.
-
-
-
Field Detail
-
TAG_TOP
public static final int TAG_TOP
- See Also:
- Constant Field Values
-
TAG_INTEGER
public static final int TAG_INTEGER
- See Also:
- Constant Field Values
-
TAG_FLOAT
public static final int TAG_FLOAT
- See Also:
- Constant Field Values
-
TAG_DOUBLE
public static final int TAG_DOUBLE
- See Also:
- Constant Field Values
-
TAG_LONG
public static final int TAG_LONG
- See Also:
- Constant Field Values
-
TAG_NULL
public static final int TAG_NULL
- See Also:
- Constant Field Values
-
TAG_UNINITIALIZED_THIS
public static final int TAG_UNINITIALIZED_THIS
- See Also:
- Constant Field Values
-
TAG_OBJECT
public static final int TAG_OBJECT
- See Also:
- Constant Field Values
-
TAG_UNINITIALIZED
public static final int TAG_UNINITIALIZED
- See Also:
- Constant Field Values
-
TOP
public static final VerificationType TOP
-
INTEGER
public static final VerificationType INTEGER
-
FLOAT
public static final VerificationType FLOAT
-
DOUBLE
public static final VerificationType DOUBLE
-
LONG
public static final VerificationType LONG
-
NULL
public static final VerificationType NULL
-
UNINITIALIZED_THIS
public static final VerificationType UNINITIALIZED_THIS
-
-
Method Detail
-
getTag
public int getTag()
- Returns:
- the tag
-
object
public static VerificationType object(int classIndex)
Creates an Object verification type with the given constant pool index.- Parameters:
classIndex- the constant pool index- Returns:
- Object verification type
-
object
public static VerificationType object(String className, int classIndex)
Creates an Object verification type for a class name.- Parameters:
className- the class nameclassIndex- the constant pool index- Returns:
- Object verification type
-
uninitialized
public static VerificationType uninitialized(int newInstructionOffset)
Creates an Uninitialized verification type for a NEW instruction.- Parameters:
newInstructionOffset- the bytecode offset of the NEW instruction- Returns:
- Uninitialized verification type
-
toVerificationTypeInfo
public abstract VerificationTypeInfo toVerificationTypeInfo()
Converts this VerificationType to a VerificationTypeInfo for writing to class files.- Returns:
- VerificationTypeInfo instance
-
isTwoSlot
public boolean isTwoSlot()
Returns true if this type takes two slots.- Returns:
- true for long or double
-
fromDescriptor
public static VerificationType fromDescriptor(char c)
Gets a verification type from a type descriptor character.- Parameters:
c- the descriptor character- Returns:
- corresponding VerificationType
-
fromDescriptor
public static VerificationType fromDescriptor(String descriptor, int classIndex)
Gets a verification type from a full type descriptor.- Parameters:
descriptor- the type descriptorclassIndex- the constant pool index for object types- Returns:
- corresponding VerificationType
-
-