# Class: com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.MatchingState

Matching result \(not necessarily final\), between a target model and a reference model.

## Constructor: MatchingState


## Static Field: DEFAULT_NAME
Type: `java.lang.String`

Constant value: `codeless-sig.state`
Description: Default serialized matching state file name.

## Method: addConstraint
- parameter: `targetFunc`, type: `com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.Func`
- parameter: `constraint`, type: `com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.Constraint`

Description: Add a possible\-reference constraint for a target function.
parameter: targetFunc: target function
parameter: constraint: constraint to add

## Method: equals
- parameter: `obj`, type: `java.lang.Object`
- return type: `boolean`


## Method: getIdentifiedRoutines
- return type: `com.pnfsoftware.jeb.util.collect.BiMap<com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.Func,com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.Func>`

Description: Get identified target\-to\-reference routines.
return: identified routines map

## Method: getIdentifiedRoutinesRange
- return type: `com.pnfsoftware.jeb.util.base.Couple<java.lang.Long,java.lang.Long>`

Description: Get the address range containing identified routines.
return: identified routines range, or null

## Method: getMatchedRangeEndAddress
- return type: `long`

Description: Get the end address of the matched range.
return: matched range end address

## Method: getMatchedRangeStartAddress
- return type: `long`

Description: Get the start address of the matched range.
return: matched range start address

## Method: getModuleAt
- parameter: `address`, type: `long`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.Module`

Description: Get the target module mapped at an address.
parameter: address: target address
return: module containing the address, or null

## Method: getNonIdentifiableRoutines
- return type: `java.util.Set<com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.Func>`

Description: Get routines that could not be identified.
return: non\-identifiable routines

## Method: getRefMetadata
- return type: `com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.ExecutableModelMetadata`

Description: Get reference model metadata.
return: reference model metadata

## Method: getResultLog
- return type: `java.lang.String`

Description: Get the matching result log.
return: result log, or null

## Method: getRoutinesConstraints
- return type: `java.util.Map<com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.Func,java.util.List<com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.Constraint>>`

Description: Get constraints attached to target routines.
return: routine constraints

## Method: getTargetModules
- return type: `java.util.Map<com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.ModuleId,com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.Module>`

Description: Get target modules by identifier.
return: target modules

## Method: getTargetModulesMapping
- return type: `com.pnfsoftware.jeb.util.collect.SegmentMap<java.lang.Long,com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.Module>`

Description: Get target modules mapped by address range.
return: target modules mapping

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


## Method: setIdentifiedRoutines
- parameter: `identifiedRoutines`, type: `com.pnfsoftware.jeb.util.collect.BiMap<com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.Func,com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.Func>`

Description: Set identified target\-to\-reference routines.
parameter: identifiedRoutines: identified routines map

## Method: setIdentifiedRoutinesRange
- parameter: `startAddr`, type: `long`
- parameter: `endAddr`, type: `long`

Description: Set the address range containing identified routines.
parameter: startAddr: range start address
parameter: endAddr: range end address

## Method: setNonIdentifiableRoutines
- parameter: `nonIdentifiableRoutines`, type: `java.util.Set<com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.Func>`

Description: Set routines that could not be identified.
parameter: nonIdentifiableRoutines: non\-identifiable routines

## Method: setRefMetadata
- parameter: `refMetadata`, type: `com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.ExecutableModelMetadata`

Description: Set reference model metadata.
parameter: refMetadata: reference model metadata

## Method: setResultLog
- parameter: `resultLog`, type: `java.lang.String`

Description: Set the matching result log.
parameter: resultLog: result log

## Method: setRoutinesConstraints
- parameter: `routinesConstraints`, type: `java.util.Map<com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.Func,java.util.List<com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.Constraint>>`

Description: Set constraints attached to target routines.
parameter: routinesConstraints: routine constraints

## Method: setTargetModules
- parameter: `targetModules`, type: `java.util.Map<com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.ModuleId,com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.Module>`

Description: Set target modules by identifier.
parameter: targetModules: target modules

## Method: setTargetModulesMapping
- parameter: `targetModulesMapping`, type: `com.pnfsoftware.jeb.util.collect.SegmentMap<java.lang.Long,com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.Module>`

Description: Set target modules mapped by address range.
parameter: targetModulesMapping: target modules mapping

## Method: toString
- return type: `java.lang.String`


## Static Method: deserialize
- parameter: `statePath`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.MatchingState`

Description: Deserialize a matching state from a file.
parameter: statePath: serialized state path
return: deserialized matching state, or null

## Static Method: serialize
- parameter: `state`, type: `com.pnfsoftware.jeb.core.units.code.asm.sig.codeless.MatchingState`
- parameter: `outFolder`, type: `java.lang.String`

Description: Serialize a matching state to the default file name in an output folder.
parameter: state: matching state to serialize
parameter: outFolder: output folder
throws: if the state cannot be written

