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
boolean
primitive type
-
getByte
IJavaType getByte()- Returns:
- the
byte
primitive type
-
getChar
IJavaType getChar()- Returns:
- the
char
primitive type
-
getShort
IJavaType getShort()- Returns:
- the
short
primitive type
-
getInt
IJavaType getInt()- Returns:
- the
int
primitive type
-
getLong
IJavaType getLong()- Returns:
- the
long
primitive type
-
getFloat
IJavaType getFloat()- Returns:
- the
float
primitive type
-
getDouble
IJavaType getDouble()- Returns:
- the
double
primitive 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.Object
type
-
getJavaLangClass
IJavaType getJavaLangClass()Convenience method.- Returns:
- the
java.lang.Class
type
-
getJavaLangString
IJavaType getJavaLangString()Convenience method.- Returns:
- the
java.lang.String
type
-
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.[I
or[[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
-