setField<V> method

  1. @override
void setField<V>(
  1. O o,
  2. String key,
  3. V? value, {
  4. bool log = true,
  5. EntityCache? entityCache,
})
override

Implementation

@override
void setField<V>(O o, String key, V? value,
    {bool log = true, EntityCache? entityCache}) {
  try {
    var field = reflection.field<V>(key, o);
    if (field == null) return;

    var fieldType = field.type;

    var resolvedValue = fieldType.typeInfo.resolveValue<V>(value,
        entityHandler: this, entityCache: entityCache);

    field.setNullable(resolvedValue);
  } catch (e, s) {
    var message =
        "Error setting `$type` field using reflection[$reflection]: $key = $value";
    if (log) {
      _log.severe(message, e, s);
    }
    throw StateError(message);
  }
}