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

An operand builder for immediates with default values which can be zero\-extended or sign\-extended. Only int and long implementations are supported for now.

## Protected Constructor: AbstractImmediateOperandBuilder
- parameter: `type`, type: `com.pnfsoftware.jeb.core.units.code.asm.processor.AbstractImmediateOperandBuilder.ImmediateType`
- parameter: `flags`, type: `int`
- parameter: `defaultValue`, type: `int`
- parameter: `memoryArea`, type: `com.pnfsoftware.jeb.core.units.code.asm.processor.memory.IEncodedMemoryArea`


## Protected Constructor: AbstractImmediateOperandBuilder
- parameter: `type`, type: `com.pnfsoftware.jeb.core.units.code.asm.processor.AbstractImmediateOperandBuilder.ImmediateType`
- parameter: `flags`, type: `int`
- parameter: `defaultValue`, type: `int`
- parameter: `defaultValueMask`, type: `int`
- parameter: `memoryArea`, type: `com.pnfsoftware.jeb.core.units.code.asm.processor.memory.IEncodedMemoryArea`


## Static Field: ABS_ADDRESS
Type: `int`

Constant value: `4194304`
Description: Flag indicating that the immediate is an absolute address.

## Static Field: PC_SHIFT_4
Type: `int`

Constant value: `8388608`
Description: Flag indicating that PC\-relative values should be shifted by 4.

## Static Field: POST_ADD1
Type: `int`

Constant value: `1048576`
Description: Allow an additional 1 added to retrieved value

## Static Field: REL_ADDRESS
Type: `int`

Constant value: `2097152`
Description: Flag indicating that the immediate is a relative address.

## Protected Method: buildImmediate
- parameter: `mode`, type: `int`
- parameter: `value`, type: `long`
- return type: `T`


## Method: buildOperand
- parameter: `code`, type: `byte[]`
- parameter: `mode`, type: `int`
- return type: `T`


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

Description: Retrieve the post\-add value.
return: post\-add value

## Protected Method: getSize
- return type: `int`


## Protected Method: getValue
- parameter: `code`, type: `byte[]`
- parameter: `mode`, type: `int`
- return type: `long`

Description: Decode the immediate value from instruction bytes.
parameter: code: instruction bytes
parameter: mode: processor mode
return: decoded value
throws: Illegal value

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

Description: Determine whether this builder sign\-extends immediate values.
return: true for signed immediate types

## Method: postAdd
- parameter: `postAdd`, type: `int`

Description: Set an additional value to add after operand computation.
parameter: postAdd: value to add

