# Class: com.pnfsoftware.jeb.util.serialization.AbstractInternalDeserializer

Base class for deserializers. Client code should not extend.

## Protected Constructor: AbstractInternalDeserializer
- parameter: `customTypeIdProvider`, type: `com.pnfsoftware.jeb.util.serialization.ITypeIdProvider`
- parameter: `classloaders`, type: `java.util.List<java.lang.ClassLoader>`
- parameter: `in`, type: `com.pnfsoftware.jeb.util.io.LEDataInputStream`


## Protected Field: cancelled
Type: `boolean`

## Protected Field: classloaders
Type: `java.util.List<java.lang.ClassLoader>`

## Protected Field: constructorMap
Type: `java.util.Map<java.lang.Class<?>,java.lang.Object>`

## Protected Field: customTypeIdProvider
Type: `com.pnfsoftware.jeb.util.serialization.ITypeIdProvider`

## Protected Field: deferredObjects
Type: `java.util.List<com.pnfsoftware.jeb.util.serialization.IPreObject>`

## Protected Field: expectedObjectCount
Type: `int`

## Protected Field: in
Type: `com.pnfsoftware.jeb.util.io.LEDataInputStream`

## Protected Field: mootObject
Type: `java.lang.Object`

## Protected Field: nativeTypeIdProvider
Type: `com.pnfsoftware.jeb.util.serialization.ITypeIdProvider`

## Protected Field: objIdPostgraphDone
Type: `java.util.Set<java.lang.Integer>`

## Protected Field: objectCreatedHookMap
Type: `com.pnfsoftware.jeb.util.collect.MultiMap<java.lang.Class<?>,com.pnfsoftware.jeb.util.serialization.IDeserializationEventHandler>`

## Protected Field: objenesis
Type: `org.objenesis.ObjenesisStd`

## Protected Field: objmap
Type: `java.util.Map<java.lang.Integer,java.lang.Object>`

## Protected Field: progressCallbacks
Type: `java.util.List<com.pnfsoftware.jeb.util.base.IProgressCallback>`

## Protected Static Field: customMethods
Type: `java.util.Map<java.lang.Class<?>,com.pnfsoftware.jeb.util.serialization.AbstractInternalDeserializer.CustomMethods>`

## Method: addObjectCreatedHook
- parameter: `c`, type: `java.lang.Class<?>`
- parameter: `handler`, type: `com.pnfsoftware.jeb.util.serialization.IDeserializationEventHandler`


## Method: addProgressCallback
- parameter: `callback`, type: `com.pnfsoftware.jeb.util.base.IProgressCallback`


## Method: close


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


## Protected Method: getCustomMethods
- parameter: `o`, type: `java.lang.Object`
- parameter: `targetClass`, type: `java.lang.Class<?>`
- return type: `com.pnfsoftware.jeb.util.serialization.AbstractInternalDeserializer.CustomMethods`


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


## Method: getObjects
- return type: `java.util.Collection<java.lang.Object>`


## Method: getStream
- return type: `java.io.InputStream`


## Protected Method: loadClass
- parameter: `typeName`, type: `java.lang.String`
- return type: `java.lang.Class<?>`


## Protected Method: logObjectMap


## Protected Method: notifyDeserializationEvent
- parameter: `type`, type: `int`
- parameter: `c`, type: `java.lang.Class<?>`
- parameter: `o`, type: `java.lang.Object`

Description: 
parameter: type: event type: 1= object created \(post creation\)
parameter: c: 
parameter: o: 

## Protected Method: notifyProgressCallbacks


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


## Method: read
- parameter: `object`, type: `java.lang.Object`
- parameter: `c`, type: `java.lang.Class<?>`
- return type: `java.lang.Object`


## Protected Method: readInternal
- parameter: `object`, type: `java.lang.Object`
- parameter: `c`, type: `java.lang.Class<?>`
- return type: `java.lang.Object`


## Protected Method: registerObject
- parameter: `isLeafObject`, type: `boolean`
- parameter: `objectId`, type: `int`
- parameter: `o`, type: `java.lang.Object`


## Method: removeObjectCreatedHook
- parameter: `c`, type: `java.lang.Class<?>`
- parameter: `handler`, type: `com.pnfsoftware.jeb.util.serialization.IDeserializationEventHandler`


## Method: removeProgressCallback
- parameter: `callback`, type: `com.pnfsoftware.jeb.util.base.IProgressCallback`


## Protected Method: resolveDeferredObjects


## Protected Method: restoreFieldValue
- parameter: `o`, type: `java.lang.Object`
- parameter: `targetClass`, type: `java.lang.Class<?>`
- parameter: `fieldId`, type: `int`
- parameter: `fieldObject`, type: `java.lang.Object`


## Method: setExpectedObjectCount
- parameter: `count`, type: `int`


