# Interface: com.pnfsoftware.jeb.core.units.code.android.dex.IDexType

This interface represents a reference to a dex type used in the dex. It may be internal or external. If the type is internal \(defined in the dex\), the implementation should be located in the associated [IDexClass](IDexClass) object. Types can be retrieved via [IDexUnit](IDexUnit).

## Method: getDependantTypes
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.android.dex.IDexType>`

Description: Retrieve the list of array types based on this type.
return: the dependent array types

## Method: getDimensions
- return type: `int`

Description: Get the array type dimensions. 

 Examples: `[I` \(that is, `int[]`\) will return 1, `[[J` \(that is, `long[][]`\) will return 2
return: the number of dimensions

## Method: getImplementingClass
- return type: `com.pnfsoftware.jeb.core.units.code.android.dex.IDexClass`

Description: Retrieve the implementation of this type, if it is internal.

## Method: getMasterType
- return type: `com.pnfsoftware.jeb.core.units.code.android.dex.IDexType`

Description: Retrieve the base type of an array type. 

 Example: if this type is `[[I`, the method will return the type object for `I`
return: the array base type, or this type if it is not an array

## Method: getNonArrayClass
- return type: `java.lang.String`

Description: Retrieve the non\-array signature of a class or interface type. Will return null for primitives or arrays of primitives. 

 Example: type is `[La/b/Foo` the method will return `La/b/Foo`
return: the non\-array class signature, or null if not applicable

## Method: getSignature
- return type: `java.lang.String`

Description: Generate the type signature. The generated signature represents the effective name in internal form.

## Method: getSignature
- parameter: `effective`, type: `boolean`
- parameter: `internal`, type: `boolean`
- return type: `java.lang.String`


## Method: getSignature
- parameter: `effective`, type: `boolean`
- parameter: `internal`, type: `boolean`
- parameter: `qualifiedNames`, type: `boolean`
- return type: `java.lang.String`

Description: Generate the type signature.
parameter: effective: true to use the effective names \(renames\), false to use the original names
parameter: internal: true to generate an internal signature \(Lcom/abc/Foo;\), false to generate a            user\-friendly signature \(com.abc.Foo\)
parameter: qualifiedNames: true to generate qualified names \(a.b.c.Foo\), false to generate simple            type names \(Foo\)
return: the type signature

## Method: isArray
- return type: `boolean`

Description: Determine whether the type is an array type.
return: true if the type is an array type

## Method: isArrayOfPrimitive
- return type: `boolean`

Description: Determine whether the type is an array of primitives.
return: true if the type is an array of primitive values

## Method: isClass
- return type: `boolean`

Description: Determine if the type is a class or interface \(not an array, not a primitive type\)
return: true if the type is a class or interface type

## Method: isPrimitive
- return type: `boolean`

Description: Determine whether the type is a primitive type.
return: true if the type is a primitive type

