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

This interface represents a Dex `code_item` object. Those objects hold, among other things, the bytecode of a method. 

 It holds the body of a method. They are referenced by [IDexMethodData](IDexMethodData) objects for internal, non\-abstract, non\-native methods.

## Method: getControlFlowGraph
- return type: `com.pnfsoftware.jeb.core.units.code.android.controlflow.CFG<com.pnfsoftware.jeb.core.units.code.android.dex.IDalvikInstruction>`

Description: Returns the CFG for this method. It may be null if the parser did not produce a control flow graph.
return: the control flow graph, or null if none was produced

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

Description: Get the debug information for the method. 

 Note: debug metadata can be forged and should not be trusted.
return: the debug info object, or null if there is none

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

Description: Retrieve the index of the dex entry that defines this code item.
return: an index into [IDexUnit#getDexEntries()](IDexUnit#getDexEntries()) \(of the owner , or \-1 if unknown or not         defined

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

Description: 
deprecated: use [#getDexEntryIndex()](#getDexEntryIndex())
return: an index into [IDexUnit#getDexEntries()](IDexUnit#getDexEntries()), or \-1 if unknown or not defined

## Method: getExceptionItems
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.android.dex.IDexExceptionItem>`

Description: Get the exception items for the method.
return: the list of exception items

## Method: getGaps
- return type: `java.util.Map<java.lang.Integer,byte[]>`

Description: Retrieve the gaps in the method's bytecode. The gaps are areas within the bytecode that are not directly used as instruction as pseudo\-instruction's data \(switch or array data\).
return: a dictionary of offset \(0\-based\) to the gap bytes

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

Description: Get the number of incoming arguments for the method.
return: the number of incoming arguments

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

Description: Get the instruction at the provided index.
parameter: index: the zero\-based instruction index
return: the instruction

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

Description: Get the instruction at the provided byte offset in the method.
parameter: offsetInMethod: method's code offset in byte
return: an instruction or null

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

Description: Get the list of parsed bytecode instructions, ordered by ascending offset. 

 This method provides the original array of instructions, not a copy. The caller should not try to modify it.
return: the list of method instructions

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

Description: Get the Dex file offset where the bytecode for the method starts.
return: the bytecode offset in bytes, that is, the absolute entry point of the associated         method

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

Description: Get the size of the method's bytecode, in bytes.
return: the bytecode size in bytes

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

Description: Get the number of outgoing arguments for the method.
return: the number of outgoing arguments

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

Description: Retrieve the list of parsing errors, if any.
return: a list

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

Description: Get the number of registers used by the method.
return: the number of registers

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

Description: Determine whether the method's bytecode was successfully parsed.
return: true if parsing errors occurred

