Method Serializer.Serializable()->_deserialize_variable()
- Method
_deserialize_variable
protectedvoid_deserialize_variable(function(function(mixed:void),string,type:void)deserializer,function(mixed:void)setter,stringsymbol,typesymbol_type)- Description
Default deserialization function for variables.
- Parameter
deserializer Function to be called in turn.
- Parameter
setter Function that sets the value of the variable.
- Parameter
symbol Variable name.
- Parameter
symbol_type Type of the variable.
This function is typically called from _deserialize(), and does something like:
if (object_typep(symbol_type)) { program p = program_from_type(symbol_type); if (p && !needs_parent(p) && is_deserializable(p)) { object value = p(); setter(value); Serializer.deserialize(value, deserializer); return; } } deserializer(setter, symbol, symbol_type);- Note
The above takes care of the most common cases, but
Does not support anonymous object types.
Does not support objects needing a parent.
Does not support non-serializable objects.
Selects one of the object types in case of a complex
symbol_type. The selected type is NOT deterministic in case there are multiple choices that satisfy the above.Is likely to throw errors if p() requires arguments.
These issues can all be solved by overloading this function.
- See also