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

This object provides serializer and deserializers optimized for a collection of specific types. It implements the `PNF-ORPD` mechanism and specifications. 

 Currently, third\-party code should not used the serializer \- i.e., units produced by third\-party plugins should be transient until the PNF\-ORPD implementation is complete. If you choose to persist third\-party units, make sure to read some limitations explained [there](NativeTypeIdProvider).

## Constructor: SerializationManager
- parameter: `typeIdProvider`, type: `com.pnfsoftware.jeb.util.serialization.ITypeIdProvider`


## Static Field: FLAG_HAS_STRINGPOOL
Type: `int`

Constant value: `1`

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

Constant value: `PNF-ORPD`
Description: "PNF Software Obfuscation\-Resilient Persisted Data"

## Method: addClassloader
- parameter: `cl`, type: `java.lang.ClassLoader`

Description: Register an additional classloader for deserialization. The additional classloaders take precedence over the system classloader, which is used if all else failed. 

 Calling this method is useless if the manager is to be used for serialization only.
parameter: cl: a classloader

## Method: getDeserializer
- parameter: `in`, type: `java.io.InputStream`
- return type: `com.pnfsoftware.jeb.util.serialization.Deserializer`


## Method: getSerializer
- parameter: `out`, type: `java.io.OutputStream`
- return type: `com.pnfsoftware.jeb.util.serialization.Serializer`


## Method: getSerializer
- parameter: `out`, type: `java.io.OutputStream`
- parameter: `generateStringPool`, type: `boolean`
- return type: `com.pnfsoftware.jeb.util.serialization.Serializer`


## Method: getSerializer_v4
- parameter: `out`, type: `java.io.OutputStream`
- return type: `com.pnfsoftware.jeb.util.serialization.Serializer_v4`


## Method: getTypeIdProvider
- return type: `com.pnfsoftware.jeb.util.serialization.ITypeIdProvider`


