public class JavaLanguage extends LanguageImpl implements BytecodeLanguage, com.ibm.wala.shrikeBT.Constants
Language which defines Java semantics.| Modifier and Type | Class and Description |
|---|---|
static class |
JavaLanguage.JavaInstructionFactory |
ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, CONSTANT_Class, CONSTANT_Double, CONSTANT_FieldRef, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodRef, CONSTANT_InvokeDynamic, CONSTANT_Long, CONSTANT_MethodHandle, CONSTANT_MethodRef, CONSTANT_MethodType, CONSTANT_NameAndType, CONSTANT_String, CONSTANT_Utf8, indexedTypes, indexedTypes_T, MAYBE, NO, OP_aaload, OP_aastore, OP_aconst_null, OP_aload, OP_aload_0, OP_aload_1, OP_aload_2, OP_aload_3, OP_anewarray, OP_areturn, OP_arraylength, OP_astore, OP_astore_0, OP_astore_1, OP_astore_2, OP_astore_3, OP_athrow, OP_baload, OP_bastore, OP_bipush, OP_caload, OP_castore, OP_checkcast, OP_d2f, OP_d2i, OP_d2l, OP_dadd, OP_daload, OP_dastore, OP_dcmpg, OP_dcmpl, OP_dconst_0, OP_dconst_1, OP_ddiv, OP_dload, OP_dload_0, OP_dload_1, OP_dload_2, OP_dload_3, OP_dmul, OP_dneg, OP_drem, OP_dreturn, OP_dstore, OP_dstore_0, OP_dstore_1, OP_dstore_2, OP_dstore_3, OP_dsub, OP_dup, OP_dup_x1, OP_dup_x2, OP_dup2, OP_dup2_x1, OP_dup2_x2, OP_f2d, OP_f2i, OP_f2l, OP_fadd, OP_faload, OP_fastore, OP_fcmpg, OP_fcmpl, OP_fconst_0, OP_fconst_1, OP_fconst_2, OP_fdiv, OP_fload, OP_fload_0, OP_fload_1, OP_fload_2, OP_fload_3, OP_fmul, OP_fneg, OP_frem, OP_freturn, OP_fstore, OP_fstore_0, OP_fstore_1, OP_fstore_2, OP_fstore_3, OP_fsub, OP_getfield, OP_getstatic, OP_goto, OP_goto_w, OP_i2b, OP_i2c, OP_i2d, OP_i2f, OP_i2l, OP_i2s, OP_iadd, OP_iaload, OP_iand, OP_iastore, OP_iconst_0, OP_iconst_1, OP_iconst_2, OP_iconst_3, OP_iconst_4, OP_iconst_5, OP_iconst_m1, OP_idiv, OP_if_acmpeq, OP_if_acmpne, OP_if_icmpeq, OP_if_icmpge, OP_if_icmpgt, OP_if_icmple, OP_if_icmplt, OP_if_icmpne, OP_ifeq, OP_ifge, OP_ifgt, OP_ifle, OP_iflt, OP_ifne, OP_ifnonnull, OP_ifnull, OP_iinc, OP_iload, OP_iload_0, OP_iload_1, OP_iload_2, OP_iload_3, OP_imul, OP_ineg, OP_instanceof, OP_invokedynamic, OP_invokeinterface, OP_invokespecial, OP_invokestatic, OP_invokevirtual, OP_ior, OP_irem, OP_ireturn, OP_ishl, OP_ishr, OP_istore, OP_istore_0, OP_istore_1, OP_istore_2, OP_istore_3, OP_isub, OP_iushr, OP_ixor, OP_jsr, OP_jsr_w, OP_l2d, OP_l2f, OP_l2i, OP_ladd, OP_laload, OP_land, OP_lastore, OP_lcmp, OP_lconst_0, OP_lconst_1, OP_ldc, OP_ldc_w, OP_ldc2_w, OP_ldiv, OP_lload, OP_lload_0, OP_lload_1, OP_lload_2, OP_lload_3, OP_lmul, OP_lneg, OP_lookupswitch, OP_lor, OP_lrem, OP_lreturn, OP_lshl, OP_lshr, OP_lstore, OP_lstore_0, OP_lstore_1, OP_lstore_2, OP_lstore_3, OP_lsub, OP_lushr, OP_lxor, OP_monitorenter, OP_monitorexit, OP_multianewarray, OP_new, OP_newarray, OP_nop, OP_pop, OP_pop2, OP_putfield, OP_putstatic, OP_ret, OP_return, OP_saload, OP_sastore, OP_sipush, OP_swap, OP_tableswitch, OP_wide, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TYPE_boolean, TYPE_boolean_index, TYPE_byte, TYPE_byte_index, TYPE_char, TYPE_char_index, TYPE_Class, TYPE_double, TYPE_double_index, TYPE_Error, TYPE_Exception, TYPE_float, TYPE_float_index, TYPE_int, TYPE_int_index, TYPE_long, TYPE_long_index, TYPE_MethodHandle, TYPE_MethodType, TYPE_null, TYPE_Object, TYPE_Object_index, TYPE_RuntimeException, TYPE_short, TYPE_short_index, TYPE_String, TYPE_Throwable, TYPE_unknown, TYPE_void, YES| Constructor and Description |
|---|
JavaLanguage() |
| Modifier and Type | Method and Description |
|---|---|
static Collection<TypeReference> |
getAaStoreExceptions() |
static Collection<TypeReference> |
getArithmeticException() |
static Collection<TypeReference> |
getArrayAccessExceptions() |
TypeReference[] |
getArrayInterfaces()
get the interfaces implemented by all arrays in the language
|
static Collection<TypeReference> |
getClassCastException() |
static Collection<TypeReference> |
getClassNotFoundException() |
TypeReference |
getConstantType(Object o)
Given a Java constant o, return the appropriate language type to associate
with the constant.
|
static Collection<TypeReference> |
getExceptionInInitializerError() |
Collection<TypeReference> |
getImplicitExceptionTypes(com.ibm.wala.shrikeBT.IInstruction pei) |
Object |
getMetadataToken(Object value)
Get the representation of the meta-data corresponding to value.
|
Atom |
getName()
What is the name of the language?
|
static Collection<TypeReference> |
getNewArrayExceptions() |
static Collection<TypeReference> |
getNewScalarExceptions() |
static Collection<TypeReference> |
getNullPointerException() |
TypeReference |
getPointerType(TypeReference pointee) |
PrimitiveType |
getPrimitive(TypeReference reference)
get the abstraction of a primitive type to be used for type inference
|
TypeReference |
getRootType()
What is the root type in a type hierarchy for this language? e.g.
|
TypeReference |
getStringType() |
TypeReference |
getThrowableType()
What is the root type of exceptions in this language? e.g.
|
Collection<TypeReference> |
inferInvokeExceptions(MethodReference target,
IClassHierarchy cha)
determine the set of possible exception types a call to target may throw
|
SSAInstructionFactory |
instructionFactory() |
boolean |
isBooleanType(TypeReference type) |
boolean |
isCharType(TypeReference type) |
boolean |
isDoubleType(TypeReference type) |
boolean |
isFloatType(TypeReference type) |
boolean |
isIntType(TypeReference type) |
boolean |
isLongType(TypeReference type) |
boolean |
isMetadataType(TypeReference type)
Is t a "metadata" type for the language, i.e., a type describing some other
type (e.g., java.lang.Class for Java)?
|
boolean |
isNullType(TypeReference type)
Is t the type of the language's null value? Should return true if
t == null (?). |
boolean |
isStringType(TypeReference type) |
boolean |
isVoidType(TypeReference type) |
TypeName |
lookupPrimitiveType(String name)
Given a source-level primitive type name, get the corresponding "low-level"
type name, e.g., the corresponding character to use in a Java method
descriptor
|
equals, getBaseLanguage, getDerivedLanguages, hashCode, registerDerivedLanguage, toStringclone, finalize, getClass, notify, notifyAll, wait, wait, waitgetBaseLanguage, getDerivedLanguages, registerDerivedLanguagepublic static Collection<TypeReference> getAaStoreExceptions()
public static Collection<TypeReference> getArithmeticException()
public static Collection<TypeReference> getArrayAccessExceptions()
public static Collection<TypeReference> getClassCastException()
public static Collection<TypeReference> getClassNotFoundException()
public static Collection<TypeReference> getNewArrayExceptions()
public static Collection<TypeReference> getNewScalarExceptions()
public static Collection<TypeReference> getNullPointerException()
public static Collection<TypeReference> getExceptionInInitializerError()
public Atom getName()
Languagepublic TypeReference getRootType()
LanguagegetRootType in interface Languagepublic TypeReference getThrowableType()
LanguagegetThrowableType in interface Languagepublic TypeReference getConstantType(Object o)
LanguagegetConstantType in interface Languagepublic boolean isNullType(TypeReference type)
Languaget == null (?).isNullType in interface Languagepublic TypeReference[] getArrayInterfaces()
LanguagegetArrayInterfaces in interface Languagepublic TypeName lookupPrimitiveType(String name)
LanguagelookupPrimitiveType in interface Languagepublic Collection<TypeReference> inferInvokeExceptions(MethodReference target, IClassHierarchy cha) throws com.ibm.wala.shrikeCT.InvalidClassFileException
LanguageinferInvokeExceptions in interface Languagecom.ibm.wala.shrikeCT.InvalidClassFileExceptionIllegalArgumentException - if target is nullIllegalArgumentException - if cha is nullpublic Collection<TypeReference> getImplicitExceptionTypes(com.ibm.wala.shrikeBT.IInstruction pei)
getImplicitExceptionTypes in interface BytecodeLanguagepei - a potentially-excepting instructionIllegalArgumentException - if pei is nullpublic SSAInstructionFactory instructionFactory()
instructionFactory in interface Languagepublic boolean isDoubleType(TypeReference type)
isDoubleType in interface Languagepublic boolean isFloatType(TypeReference type)
isFloatType in interface Languagepublic boolean isIntType(TypeReference type)
public boolean isLongType(TypeReference type)
isLongType in interface Languagepublic boolean isVoidType(TypeReference type)
isVoidType in interface Languagepublic boolean isMetadataType(TypeReference type)
LanguageisMetadataType in interface Languagepublic boolean isStringType(TypeReference type)
isStringType in interface Languagepublic boolean isBooleanType(TypeReference type)
isBooleanType in interface Languagepublic boolean isCharType(TypeReference type)
isCharType in interface Languagepublic Object getMetadataToken(Object value)
LanguageTypeReference. The returned object should be
appropriate for use as the token in an SSALoadMetadataInstruction
for the languagegetMetadataToken in interface Languagepublic TypeReference getPointerType(TypeReference pointee) throws UnsupportedOperationException
getPointerType in interface LanguageUnsupportedOperationExceptionpublic TypeReference getStringType()
getStringType in interface Languagepublic PrimitiveType getPrimitive(TypeReference reference)
LanguagegetPrimitive in interface LanguageTypeInferenceCopyright © 2015. All rights reserved.