# Class: com.pnfsoftware.jeb.core.units.code.asm.processor.AbstractInstructionManager

A skeleton class used to create instruction managers.

## Constructor: AbstractInstructionManager

Description: Create an instruction manager with an empty cache.

## Protected Method: buildKey
- parameter: `block`, type: `com.pnfsoftware.jeb.core.units.code.asm.processor.BytesBlock`
- return type: `byte[]`


## Method: clearCache

Description: Clear the decoded instruction cache.

## Method: extract
- parameter: `object`, type: `T`
- return type: `byte[]`


## Protected Method: findInstruction
- parameter: `block`, type: `com.pnfsoftware.jeb.core.units.code.asm.processor.BytesBlock`
- return type: `T`


## Method: getInstruction
- parameter: `block`, type: `com.pnfsoftware.jeb.core.units.code.asm.processor.BytesBlock`
- return type: `T`

Description: Retrieve or decode an instruction for the provided byte block.
parameter: block: instruction bytes
return: decoded instruction
throws: on decoding error

## Protected Method: retrieveInstructionFromCache
- parameter: `instruction`, type: `T`
- return type: `T`


## Protected Method: useCache
- parameter: `block`, type: `com.pnfsoftware.jeb.core.units.code.asm.processor.BytesBlock`
- return type: `boolean`


## Protected Static Method: getUndefinedMessage
- parameter: `code`, type: `byte[]`
- return type: `java.lang.String`


## Protected Static Method: getUnpredictableMessage
- parameter: `code`, type: `byte[]`
- parameter: `mnemonic`, type: `java.lang.String`
- return type: `java.lang.String`


## Protected Static Method: raiseUndefined
- parameter: `code`, type: `byte[]`


