Message.entry constructor

Message.entry(
  1. dynamic entry
)

Implementation

Message.entry(dynamic entry) {
  Object? key;
  Object? val;
  Object? desc;

  if (entry is List) {
    var list = entry;
    key = list[0];
    val = list[1];
    desc = list.length > 2 ? list[2] : null;
  } else if (entry is Map) {
    var map = entry;
    key = map['key'];
    val = map['value'] ?? map['val'];
    desc = map['description'] ?? map['desc'];
  }

  if (key != null) {
    _key = key.toString().trim();

    if (val is String) val = val.toString().trim();
    _value = MessageValue(val);

    String? description;
    if (desc != null) {
      var d = desc.toString().trim();
      description = d.isNotEmpty ? d : null;
    }

    _description = description;
  } else {
    throw ArgumentError.value(
        entry, 'entry', 'Invalid entry as Message: Not a List or a Map.');
  }
}