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

A standard provider for native Java types. Currently, this provider supports: 
 
- Pseudo\-support for [Object](Object) since all objects inherit it 
- Primitive types: boolean, byte, char, short, int, long, float, double 
- Objects wrapping the primitive types: [Boolean](Boolean), [Byte](Byte), [Character](Character), [Short](Short), [Integer](Integer), [Long](Long), [Float](Float), [Double](Double) 
- Char\-sequence types: [String](String) 
- Big\-num types: [BigInteger](BigInteger) and [BigDecimal](BigDecimal) 
- List types: [ArrayList](ArrayList), [LinkedList](LinkedList), [ArrayDeque](ArrayDeque) 
- Set types: [HashSet](HashSet), [TreeSet](TreeSet), [LinkedHashSet](LinkedHashSet) 
- Map types: [HashMap](HashMap), [TreeMap](TreeMap), [LinkedHashMap](LinkedHashMap), [IdentityHashMap](IdentityHashMap) 

 Currently, serializing any other non\-native type \(or non @[Ser](Ser) type\) will result in undefined behavior. 

 Caveats regarding collections and maps: when serializing those objects, optional parameters such as the initial capacity, the load factor, or even a custom comparator \(for tree\-sets/maps\) are not persisted. Therefore, they cannot be automatically restored. It is up to the implementation to wrap such objects in higher\-level classes using a [custom constructor](SerConstructor) that can call the original object \(collection or map\) constructor's with proper parameters. This is especially critical for TreeMap or TreeSet using custom comparators.

## Protected Method: loadTypes
- parameter: `map`, type: `java.util.Map<java.lang.Class<?>,java.lang.Integer>`
- parameter: `movedmap`, type: `java.util.Map<java.lang.Integer,java.lang.Integer>`


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


