# Interface: com.pnfsoftware.jeb.core.units.code.asm.analyzer.IBinaryPattern

Definition of a binary pattern. The pattern can be masked. The basic verification routine does something like: `if(checkedByte[i] == (pattern[i] & mask[i])) ... `

## Method: getBinary
- return type: `byte[]`

Description: Binary bytes. Mandatory.
return: binary bytes

## Method: getExtra
- return type: `java.lang.Object`

Description: Get some extra data associated to this pattern. Client specific.
return: optional data

## Method: getMask
- return type: `byte[]`

Description: Binary mask. Optional. If present, must have same length as [#getBinary()](#getBinary()).
return: binary mask, or null

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

Description: Valid processor mode for this Binary Pattern. Can be [IProcessor#MODE_DEFAULT](IProcessor#MODE_DEFAULT) if valid in any mode.
return: processor mode

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

Description: The real start offset.
return: real start offset

## Method: validate
- parameter: `gca`, type: `com.pnfsoftware.jeb.core.units.code.asm.analyzer.INativeCodeAnalyzer<?>`
- parameter: `address`, type: `long`
- parameter: `buffer`, type: `byte[]`
- parameter: `offset`, type: `int`
- parameter: `offsetEnd`, type: `int`
- return type: `boolean`

Description: Final validation. Optional method.
parameter: gca: native code analyzer
parameter: address: address being checked
parameter: buffer: data buffer
parameter: offset: start offset in the buffer
parameter: offsetEnd: end offset in the buffer
return: true if the candidate match is valid

