# Interface: com.pnfsoftware.jeb.core.units.code.java.IJavaTypeFactory

Builder for Java AST types.

## Method: createArrayType
- parameter: `baseType`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`
- parameter: `dimensions`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: Create an array type from a base type.
parameter: baseType: base type a non\-array type
parameter: dimensions: dimension count
return: an array type, e.g. `baseType[][]` if dimensions is 2

## Method: createType
- parameter: `signature`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: Create a Java type.
parameter: 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;`
-
return: the type

## Method: createWildcardType
- parameter: `signature`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: Create a wildcard reference type \(extends\).
parameter: signature: a class or interface type
return: a wildcard type representing `"? extends T"`

## Method: createWildcardType
- parameter: `signature`, type: `java.lang.String`
- parameter: `wildcardExtendsType`, type: `boolean`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: Create a wildcard reference type.
parameter: signature: a class or interface type
parameter: wildcardExtendsType: 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
return: a wildcard type representing `"? extends T"` or `"? super T"`

## Method: getBoolean
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: 
return: the `boolean` primitive type

## Method: getByte
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: 
return: the `byte` primitive type

## Method: getChar
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: 
return: the `char` primitive type

## Method: getDouble
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: 
return: the `double` primitive type

## Method: getDoubleSlotWildcard
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: 
return: the wildcard type representing any type whose concrete implementation fits on two VM         slot \(e.g. double, long\)

## Method: getFloat
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: 
return: the `float` primitive type

## Method: getGenericObjectWildcard
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: 
return: 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.

## Method: getInt
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: 
return: the `int` primitive type

## Method: getJavaLangClass
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: Convenience method.
return: the `java.lang.Class` type

## Method: getJavaLangObject
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: Convenience method.
return: the `java.lang.Object` type

## Method: getJavaLangString
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: Convenience method.
return: the `java.lang.String` type

## Method: getLong
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: 
return: the `long` primitive type

## Method: getShort
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: 
return: the `short` primitive type

## Method: getSingleSlotWildcard
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: 
return: the wildcard type representing any type whose concrete implementation fits on a         single VM slot \(e.g. boolean, int, reference types, etc.\)

## Method: getSmallIntWildcard
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: 
return: the wildcard type representing any small integer \(byte, char, short, int\)

## Method: getTypeInfoProvider
- return type: `com.pnfsoftware.jeb.core.units.code.android.ir.IDTypeInfoProvider`

Description: Retrieve the type information provider, which provides information for additional types provided by the dex modules.
return: a type information provider

## Method: getVoid
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: 
return: the non\-type void \(pseudo\-type\)

## Method: letterToType
- parameter: `typeLetter`, type: `char`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: 
parameter: typeLetter: 
return: 

## Method: parseType
- parameter: `signature`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: Parse a type.
parameter: signature: internal type name, array accepted; internal form, e.g. `[I` or            `[[Ljava/lang/Object;`
return: 

## Method: primitiveNameToType
- parameter: `name`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaType`

Description: Retrieve a primtive type from its high\-level language name.
parameter: name: a primitive type name, e.g. "short"
return: a primitive type; this method throws on error

