void _decodeProperty()

in lib/src/db/model_db_impl.dart [473:492]


  void _decodeProperty(ModelDBImpl db, ds.Entity entity,
      mirrors.InstanceMirror mirror, String fieldName, Property prop) {
    var propertyName = fieldNameToPropertyName(fieldName);

    var rawValue = entity.properties[propertyName!];
    var value = prop.decodePrimitiveValue(db, rawValue);

    if (!prop.validate(db, value)) {
      throw StateError('Property validation failed while '
          'trying to deserialize entity of kind '
          '${entity.key.elements.last.kind} (property name: $propertyName)');
    }

    try {
      mirror.setField(mirrors.MirrorSystem.getSymbol(fieldName), value);
    } on TypeError catch (error) {
      throw StateError('Error trying to set property "${prop.propertyName}" '
          'to $value for field "$fieldName": $error');
    }
  }