Class SerializerAbstract

Handles the external serialization and deserialization of Serializable objects. The internal process is handled by the objects themselves.
A Serialization object can be created from a Serializable object and a JSON-String may be created from that.
Vice versa, a JSON-String can be parsed to a Serialization which can be deserialized to a Serializable object.

 [Serializable] → (serialize) → [Serialization] → (stringify) → [String] → (save or send)
                                       ↓                            ↓                  ↓         
               [Serializable] ← (deserialize) ← [Serialization] ← (parse) ← (load) ← [Medium]

While the internal serialize/deserialize method1s of the objects care of the selection of information needed to recreate the object and its structure,
the Serializer keeps track of the namespaces and classes in order to recreate Serializable objects. The general structure of a Serialization is as follows

{
     namespaceName.className: {
         propertyName: propertyValue,
         ...,
         propertyNameOfReference: SerializationOfTheReferencedObject,
         ...,
         constructorNameOfSuperclass: SerializationOfSuperClass
     }
}

Since the instance of the superclass is created automatically when an object is created, the SerializationOfSuperClass omits the the namespaceName.className key and consists only of its value. The constructorNameOfSuperclass is given instead as a property name in the serialization of the subclass.

Constructors

Methods