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

This interface represents a Dex `method_id_item` object, that is, a reference to an internal or external method used in the dex. Retrieved via [IDexUnit](IDexUnit).

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


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

Description: Get the containing class type index.
return: the class type index

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

Description: Get the containing class type signature.
parameter: effective: true to use the effective signature, false to use the original signature
return: the class type signature

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

Description: Get a reference to the method definition, if the method is internal.
return: the methods data, null for external methods

## Method: getDebugVariablesMap
- return type: `java.util.SortedMap<java.lang.Integer,java.util.List<com.pnfsoftware.jeb.core.units.code.android.dex.IDexDebugVariable>>`

Description: Retrieve a high\-level map of variables defined in the debug information of this method. The method must be internal.
return: null if there is no debug information for the method. Else, a map of instruction         offset \(in bytes\) to the list of existing debug variables defined when the         instruction is to be executed

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

Description: Get the index of this item in the Dex file's method list.
return: the method index

## Method: getInstruction
- parameter: `index`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.android.dex.IDalvikInstruction`

Description: 
parameter: index: instruction index
return: the instruction or null if the method does not have a body

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


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

Description: Get the name for this method.

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

Description: Get the method name index.
return: the name index

## Method: getParameterName
- parameter: `index`, type: `int`
- return type: `java.lang.String`

Description: Set a parameter name. 

 Note: names are used by the decompiler.
parameter: index: 0\-based parameter index \(\`this\` is not\-considered a parameter by this method\)
return: the manually set name, or null if there is none or an automatically\-generated name is         provided

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

Description: Retrieve the list of parameters. For non\-static methods, \`this\` is implied and is not provided as the first parameter of the returned list.

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

Description: Get the method prototype.
return: the method prototype

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

Description: Get the method prototype index.
return: the prototype index

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


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

Description: Get the signature for this method.

## 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: `includeReturnType`, type: `boolean`
- return type: `java.lang.String`

Description: Get the signature for this method.
parameter: effective: true to use effective names, false to use original names
parameter: internal: true to use internal Dex notation, false to use user\-friendly notation
parameter: includeReturnType: true to include the return type
return: the method signature

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

Description: Get the signature for this method.
parameter: effective: true to use effective names, false to use original names
parameter: internal: true to use internal Dex notation, false to use user\-friendly notation
parameter: includeReturnType: true to include the return type
parameter: qualifiedNames: true to use qualified names, false to use simple names
return: the method signature

## Method: setName
- parameter: `name`, type: `java.lang.String`
- return type: `boolean`

Description: Rename this method. The method overrides and/or definition are renamed consistently. This method does not notify changes on success: it is up to the user to issue a [J#UnitChange](J#UnitChange) notification. 

 This method is for convenience only: users can always use the associated unit's `RENAME` action \(through the [executeAction](IInteractiveUnit#executeAction(com.pnfsoftware.jeb.core.actions.ActionContext, com.pnfsoftware.jeb.core.actions.IActionData)) method\) to rename an item generically.
parameter: name: the new name
return: success indicator

## Method: setName
- parameter: `name`, type: `java.lang.String`
- parameter: `notify`, type: `boolean`
- return type: `boolean`

Description: Rename this method.
parameter: name: the new name
parameter: notify: true to notify listeners of the change
return: success indicator

## Method: setParameterName
- parameter: `index`, type: `int`
- parameter: `name`, type: `java.lang.String`
- parameter: `failOnNameConflict`, type: `boolean`
- parameter: `notify`, type: `boolean`
- return type: `boolean`

Description: Set a parameter name. 

 Note: names are used by the decompiler.
parameter: index: 0\-based parameter index \(\`this\` is not\-considered a parameter by this method\)
parameter: name: the manually set name, or null to reset to a default name
parameter: failOnNameConflict: verify if the new name will not conflict with another parameter or            variable name of this method
parameter: notify: true to notify listeners if the parameter name has effectively changed
return: change indicator

