- @override
Converts a value to a more complex value from a primitive value according to this instance's definition.
This method takes a non-Dart representation of a value (e.g. an HTTP body or database query) and turns it into a Dart representation . How this value is computed depends on this instance's definition.
Source
@override
dynamic convertFromPrimitiveValue(dynamic value) {
if (type == ManagedPropertyType.datetime && value is String) {
value = DateTime.parse(value);
} else if (type == ManagedPropertyType.doublePrecision &&
value is num) {
value = value.toDouble();
} else if (isEnumeratedValue) {
if (!enumerationValueMap.containsKey(value)) {
throw new QueryException(QueryExceptionEvent.requestFailure,
message: "The value '$value' is not valid for '${MirrorSystem.getName(entity.instanceType.simpleName)}.$name'");
}
return enumerationValueMap[value];
}
// no need to check type here - gets checked by managed backing
return value;
}