Interface IJavaTypeFactory
Builder for Java AST types.
-
Method Summary
Modifier and TypeMethodDescriptioncreateArrayType(IJavaType baseType, int dimensions) Create an array type from a base type.createType(String signature) Create a Java type.createWildcardType(String signature, boolean wildcardExtendsType) Create a wildcard reference type.getByte()getChar()getFloat()getInt()Convenience method.Convenience method.Convenience method.getLong()getShort()Retrieve the type information provider, which provides information for additional types provided by the dex modules.getVoid()letterToType(char typeLetter) Parse a type.primitiveNameToType(String name) Retrieve a primtive type from its high-level language name.
-
Method Details
-
getVoid
IJavaType getVoid()- Returns:
- the non-type void (pseudo-type)
-
getBoolean
IJavaType getBoolean()- Returns:
- the
booleanprimitive type
-
getByte
IJavaType getByte()- Returns:
- the
byteprimitive type
-
getChar
IJavaType getChar()- Returns:
- the
charprimitive type
-
getShort
IJavaType getShort()- Returns:
- the
shortprimitive type
-
getInt
IJavaType getInt()- Returns:
- the
intprimitive type
-
getLong
IJavaType getLong()- Returns:
- the
longprimitive type
-
getFloat
IJavaType getFloat()- Returns:
- the
floatprimitive type
-
getDouble
IJavaType getDouble()- Returns:
- the
doubleprimitive type
-
getSingleSlotWildcard
IJavaType getSingleSlotWildcard()- Returns:
- the wildcard type representing any type whose concrete implementation fits on a single VM slot (e.g. boolean, int, reference types, etc.)
-
getDoubleSlotWildcard
IJavaType getDoubleSlotWildcard()- Returns:
- the wildcard type representing any type whose concrete implementation fits on two VM slot (e.g. double, long)
-
getSmallIntWildcard
IJavaType getSmallIntWildcard()- Returns:
- the wildcard type representing any small integer (byte, char, short, int)
-
getGenericObjectWildcard
IJavaType getGenericObjectWildcard()- Returns:
- the wildcard type representing any object type (class, interface, array); do not
confuse this wildcard with the extends-Object (
? extends Object) wildcard, which is used for classes and interfaces specifically.
-
getJavaLangObject
IJavaType getJavaLangObject()Convenience method.- Returns:
- the
java.lang.Objecttype
-
getJavaLangClass
IJavaType getJavaLangClass()Convenience method.- Returns:
- the
java.lang.Classtype
-
getJavaLangString
IJavaType getJavaLangString()Convenience method.- Returns:
- the
java.lang.Stringtype
-
createType
Create a Java type.- Parameters:
signature- internal type name, it can be:- The void type:
V - A primitive type, ie one of:
Z, B, C, S, I, J, F, D - An object type, eg
Lcom/foo/Bar; - An array type, eg:
[I, [[J, [[[Lcom/Foo/Bar;
- The void type:
- Returns:
- the type
-
createArrayType
Create an array type from a base type.- Parameters:
baseType- base type a non-array typedimensions- dimension count- Returns:
- an array type, e.g.
baseType[][]if dimensions is 2
-
parseType
Parse a type.- Parameters:
signature- internal type name, array accepted; internal form, e.g.[Ior[[Ljava/lang/Object;- Returns:
-
letterToType
- Parameters:
typeLetter-- Returns:
-
primitiveNameToType
Retrieve a primtive type from its high-level language name.- Parameters:
name- a primitive type name, e.g. "short"- Returns:
- a primitive type; this method throws on error
-
createWildcardType
Create a wildcard reference type.- Parameters:
signature- a class or interface typewildcardExtendsType- true to generate a wildcard type representing the provided type or any of its sub-types; false to generate a wildcard type representing the provided type or any of its super-types- Returns:
- a wildcard type representing
"? extends T"or"? super T"
-
getTypeInfoProvider
IDTypeInfoProvider getTypeInfoProvider()Retrieve the type information provider, which provides information for additional types provided by the dex modules.- Returns:
- a type information provider
-