protected <T extends Serializable> void postSerializer(T serializableObject, Map<String, Object> objReferences) {
        for(Field field : ReflectionMethods.getAllFields(new LinkedList<>(), serializableObject.getClass())) {
            String fieldName = field.getName();

            Object ref = objReferences.remove(fieldName);
            if(ref != null) { //if a reference is found in the map
                field.setAccessible(true);

                try {
                    //restore the reference in the object
                    field.set(serializableObject, ref);
                }
                catch (IllegalAccessException ex) {
                    throw new RuntimeException(ex);
                }
            }
        }
    }
protected < T extends Serializable > void postSerializer ( T serializableObject , Map < String , Object > objReferences ) { for ( Field field : ReflectionMethods . getAllFields ( new LinkedList < > ( ) , serializableObject . getClass ( ) ) ) { String fieldName = field . getName ( ) ; Object ref = objReferences . remove ( fieldName ) ; if ( ref != null ) { field . setAccessible ( true ) ; try { field . set ( serializableObject , ref ) ; } catch ( IllegalAccessException ex ) { throw new RuntimeException ( ex ) ; } } } }
This method is called after the object serialization. It moves all the not-serializable BigMap references from
the Map back to the provided object. The main idea is that once the serialization is completed, we are allowed to
restore back all the references which were removed by the preSerializer.

@param serializableObject
@param objReferences
@param <T>