decode method

  1. @override
MultiSelectItems decode(
  1. Object? value
)
override

Decodes a JSON-compatible wire value.

Implementation

@override
MultiSelectItems decode(Object? value) {
  if (value is Map<Object?, Object?>) {
    final payload = decodeAcpObject(value);
    if (payload['type'] == 'string') {
      return MultiSelectItemsStringMultiSelectItems(
        stringMultiSelectItemsCodec.decode(value),
      );
    }
  }
  try {
    return MultiSelectItemsTitled(titledMultiSelectItemsCodec.decode(value));
  } on Object {
    // Try the next structurally distinct member.
  }
  if (value is Map<Object?, Object?>) {
    return MultiSelectItemsOther(AcpJsonObject.fromObject(value));
  }
  throw const FormatException('Value does not match MultiSelectItems');
}