serialize<T> method
Map<String, dynamic>?
serialize<
T>( - T? object
)
Implementation
Map<String, dynamic>? serialize<T>(T? object) {
if (object == null) return null;
if (object is BackendlessUser)
return object.properties.cast<String, dynamic>();
Map<String, dynamic> result = Map();
ClassMirror classMirror;
try {
classMirror = reflectType(T) as ClassMirror;
} on NoSuchCapabilityError {
classMirror = reflectType(object.runtimeType) as ClassMirror;
}
InstanceMirror instanceMirror = reflect(object);
classMirror.declarations.forEach((propertyName, value) {
if (value is VariableMirror) {
var variable = instanceMirror.invokeGetter(propertyName);
var columnName = Types.getColumnNameForProperty(propertyName, value);
if (_canSerializeObject(variable)) {
result[columnName] = variable;
} else if (isCustomClass(variable)) {
result[columnName] = serialize(variable);
}
}
});
return result;
}