Package javassist.bytecode.analysis

# Class ControlFlow.Block

java.lang.Object
javassist.bytecode.stackmap.BasicBlock
javassist.bytecode.analysis.ControlFlow.Block

Enclosing class:
  `ControlFlow`

public static class ControlFlow.Block extends javassist.bytecode.stackmap.BasicBlock
Basic block. It is a sequence of contiguous instructions that do not contain jump/branch instructions except the last one. Since Java6 or later does not allow `JSR`, we deal with `JSR` as a non-branch instruction.

## Nested Class Summary

## Nested classes/interfaces inherited from class javassist.bytecode.stackmap.BasicBlock

`javassist.bytecode.stackmap.BasicBlock.Catch, javassist.bytecode.stackmap.BasicBlock.Maker`

## Field Summary

Fields
Modifier and Type
Field
Description
`Object`
`clientData`
A field that can be freely used for storing extra data.

## Method Summary

Modifier and Type
Method
Description
`ControlFlow.Catcher[]`
`catchers()`
Returns catch clauses that will catch an exception thrown in this block.
`ControlFlow.Block`
`exit(int n)`
Returns the n-th block that may be executed after this block.
`int`
`exits()`
Return the number of the blocks that may be executed after this block.
`ControlFlow.Block`
`incoming(int n)`
Returns the block that the control may jump into this block from.
`int`
`incomings()`
Returns the number of the control paths entering this block.
`int`
`index()`
Returns the position of this block in the array of basic blocks that the `basicBlocks` method returns.
`int`
`length()`
Returns the length of this block.
`int`
`position()`
Returns the position of the first instruction in this block.

### Methods inherited from class javassist.bytecode.stackmap.BasicBlock

`find, toString`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### clientData

public Object clientData
A field that can be freely used for storing extra data. A client program of this control-flow analyzer can append an additional attribute to a `Block` object. The Javassist library never accesses this field.

## Method Details

### index

public int index()
Returns the position of this block in the array of basic blocks that the `basicBlocks` method returns.

See Also:
  - `ControlFlow.basicBlocks()`

### position

public int position()
Returns the position of the first instruction in this block.

### length

public int length()
Returns the length of this block.

### incomings

public int incomings()
Returns the number of the control paths entering this block.

### incoming

public ControlFlow.Block incoming(int n)
Returns the block that the control may jump into this block from.

### exits

public int exits()
Return the number of the blocks that may be executed after this block.

### exit

public ControlFlow.Block exit(int n)
Returns the n-th block that may be executed after this block.

Parameters:
  `n` - an index in the array of exit blocks.

### catchers

public ControlFlow.Catcher[] catchers()
Returns catch clauses that will catch an exception thrown in this block.