consumeState method

Object? consumeState(
  1. String propertyId,
  2. String value
)

Implementation

Object? consumeState(String propertyId, String value) {
  final type = _schema[propertyId];
  if (type == null) {
    throw UnknownPropertyError(id, propertyId);
  }

  value = value.trim();
  if (value.isEmpty) {
    _state.remove(propertyId);
    return null;
  }

  Object? parsedValue;

  if (type == int) {
    parsedValue = int.tryParse(value);
  } else if (type == double) {
    parsedValue = double.tryParse(value);
  } else if (type == bool) {
    parsedValue =
        (value == "1" || value.toLowerCase() == "on") ? true : false;
  } else {
    parsedValue = value;
  }

  _state[propertyId] = parsedValue;

  return parsedValue;
}