Method Serializer.Serializable()->_deserialize_variable()
- Method _deserialize_variable
protected void _deserialize_variable(function(function(mixed:void), string, type:void) deserializer, function(mixed:void) setter, string symbol, type symbol_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