# Class: com.pnfsoftware.jeb.core.units.code.CFGUtil.RegionFinder

This class attempts to determine a region in a graph. A region consists of an extended set of basic blocks, reachable from an entry block, and reaching an optional set of outputs. The only way to reach a region's node is via the entry block.

## Constructor: RegionFinder
- parameter: `cfg`, type: `com.pnfsoftware.jeb.core.units.code.android.controlflow.CFG<? extends com.pnfsoftware.jeb.core.units.code.IInstruction>`
- parameter: `entry`, type: `long`
- parameter: `outputs`, type: `java.util.Set<java.lang.Long>`
- parameter: `canLoopBackToEntry`, type: `boolean`

Description: Build a region finder.
parameter: cfg: CFG
parameter: entry: entry block address
parameter: outputs: output block addresses \(may be 0, 1, or 2\+\)
parameter: canLoopBackToEntry: true if the blocks in the region to\-be\-determined may loop back            to the entry node; false if they may not

## Constructor: RegionFinder
- parameter: `cfg`, type: `com.pnfsoftware.jeb.core.units.code.android.controlflow.CFG<? extends com.pnfsoftware.jeb.core.units.code.IInstruction>`
- parameter: `entry`, type: `long`
- parameter: `output`, type: `long`

Description: Build a finder for a region having a single output, for which the region blocks cannot loop back to the entry.
parameter: cfg: CFG
parameter: entry: entry block address
parameter: output: exit block address

## Method: getRegionBlocks
- return type: `java.util.Collection<java.lang.Long>`

Description: 
return: the list of blocks in the region \(the list of outputs can never be included in         this result\)

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

Description: 
return: true if a region was properly determined; else, false

