# Interface: com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem

A method item references an external or internal native routine. Internal routines have associated [INativeMethodDataItem](INativeMethodDataItem) objects defining them.

## Method: getClassItem
- return type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeClassItem`


## Method: getClassType
- return type: `com.pnfsoftware.jeb.core.units.code.asm.type.IClassType`


## Method: getData
- return type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodDataItem`

Description: If the method is internal, retrieve the method's definition object.
return: the method data object; null if the method is external

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


## Method: getFunctionPointer
- return type: `com.pnfsoftware.jeb.core.units.code.asm.type.IReferenceType`

Description: 

## Method: getInstructions
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.IInstruction>`

Description: Retrieve a list of instructions for this method. It is preferable to use [#getData()](#getData()) and [INativeMethodDataItem#getCFG()](INativeMethodDataItem#getCFG()) instead.

## Method: getMemoryAddress
- return type: `java.lang.Long`

Description: Convenience method to retrieve the physical address of the routine start, if a definition object is present.
return: an address or null if this reference does not link to a definition object

## Method: getNonReturning
- return type: `java.lang.Boolean`

Description: Retrieve a hint specifying whether or not the method returns to its caller. Note that this information may be provided in [prototype](#getPrototype()).
return: null if not present or not computed

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

Description: 
parameter: index: 
return: 

## Method: getParameterNames
- return type: `java.util.List<java.lang.String>`

Description: Retrieve a list of parameter names.
return: a list, possibly empty \(or containing less entries than the actual parameter count\);         never null

## Method: getParameterTypes
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.asm.type.INativeType>`


## Method: getPrototype
- return type: `com.pnfsoftware.jeb.core.units.code.asm.type.IPrototypeItem`

Description: Retrieve the method prototype, if one was set.
return: the prototype or null \(if unknown\)

## Method: getReturnType
- return type: `com.pnfsoftware.jeb.core.units.code.asm.type.INativeType`


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

Description: Determine if the native prototype was auto\-generated. The value is irrelevant if [#getPrototype()](#getPrototype()) returns null.
return: true if the prototype was automatically generated

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

Description: Determine whether this method matched a well\-known method signed by one of JEB's code signing system.
return: 

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

Description: 
return: 

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


## Method: setNonReturning
- parameter: `nonReturning`, type: `java.lang.Boolean`

Description: Specify whether the method returns to its caller upon completion. Note that this information may be provided in [prototype](#getPrototype()).
parameter: nonReturning: 

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

Description: 
parameter: index: 
parameter: name: 

## Method: setParameterNames
- parameter: `names`, type: `java.util.Collection<java.lang.String>`

Description: 
parameter: names: 

## Method: setPrototype
- parameter: `prototype`, type: `com.pnfsoftware.jeb.core.units.code.asm.type.IPrototypeItem`

Description: Set or update a prototype. Any wildcard prototype attached to the routine will be nullified.
parameter: prototype: 

