# Interface: com.pnfsoftware.jeb.core.units.code.IFlowInformation

Information relative to execution flow changes. Flow changes are important objects used to  determine boundaries of basic blocks in a CFG.

## Abstract Method: getDelaySlotCount
- return type: `int`

Description: Get the number of instructions in the delay slot.
return: number of instructions in delay slot

## Abstract Method: getTargets
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.ICodePointer>`

Description: Get the a list of targets. Be careful, this list does not include the fall\-through target if  it is implied \(eg, when flow\-info is returned by [IInstruction#getRoutineCall](IInstruction#getRoutineCall)\) or when  its calculation was requested dynamically \(via [#mustComputeFallThrough()](#mustComputeFallThrough())\).
return: the list of addresses that must be checked, possibly empty. A null value signifies          no\-flow information.

## Abstract Method: isBroken
- return type: `boolean`

Description: Determine if this object does contain flow information.
return: true is the flow is broken \(eg, generic branch\)

## Abstract Method: isBrokenKnown
- return type: `boolean`

Description: Determine if this object does contain flow information and **all** targets are known.
return: true if the flow is broken and all targets are known

## Abstract Method: isBrokenUnknown
- return type: `boolean`

Description: Determine if this object does contain flow information but has **no** known targets.  

  IMPORTANT: if this flow info object is mixed \(it specifies having unknown target\(s\), and also  bears known targets\), this method returns false.
return: true if the flow is broken but no targets are known

## Abstract Method: mustComputeFallThrough
- return type: `boolean`

Description: Indicate if the flow information includes a fall\-through address \(relative to the current  instruction\) that is **not present in the FlowInfo object itself**. If this method returns  true, the caller must dynamically calculate the fall\-through address itself.  

  Note that the creator of a flowinfo object may decide to add the fall\-through \(if any\) in the  flowinfo object target list. However, in some cases, such as branching instructions with  delay slot\(s\), it is simpler to indicate that the branching instruction allows a fall\-through  flow, but that it should be computed by the client/user, instead of stored or computed by the  flowinfo object.
return: true if the flowinfo object does not include a fall\-through address, false otherwise

## Abstract Method: noFallThrough
- return type: `boolean`

Description: Indicate whether this flow information forbids the implicit calculation of a fall\-through  edge. \(A fall\-through may be explicitly specified as a [target](#getTargets()),  regardless.\)
return: true if the flowinfo specifies no fall\-through

